Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 检查单元格数组是否不是所需值的有效方法_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 检查单元格数组是否不是所需值的有效方法

Google apps script 检查单元格数组是否不是所需值的有效方法,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我的第1行是标题行,我有一个onOpen()函数,运行该函数可以确保所有标题都是正确的 onOpen(){ var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); s.getRange("A1").setValue("Order Number"); } 我有大约20+个这样的标题,所以每次打开它都会运行20+次,无论标题是否存在,它都会填充或覆盖它。

我的第1行是标题行,我有一个onOpen()函数,运行该函数可以确保所有标题都是正确的

    onOpen(){

        var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
        s.getRange("A1").setValue("Order Number");    
    }
我有大约20+个这样的标题,所以每次打开它都会运行20+次,无论标题是否存在,它都会填充或覆盖它。 正如你所看到的,这是非常低效的,我想知道是否有一种方法可以根据单元格的值来减少它运行的时间


我尝试在循环中使用switch语句来检查文本是否存在,是否匹配,但运行时间大致相同。那么,在优化运行时间的同时,有没有更有效的方法呢?

如果你有一张纸有20多个页眉,所有页眉都有预先确定的值,那么就一次将它们全部设置好

函数onOpen(){ 变量头=[ [“订单号”、“客户名称”、/*等……另外20个*/,“发货地址”] ]; SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“Sheet1”) getRange(1,1,1,标头[0]。长度)。SetValue(标头); } 首先,如何防止他们改变


在工作表中,您可以单击“工具>保护工作表”并设置警告或自定义权限以保护该范围。

我了解了如何设置第一行的列值:

var headers = [[
    "Order",
    "Name",
    "Date",
    "Address"
    ]];
  // headers 
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Daily output").getRange(1,1,1, headers[0].length).setValues(headers);

这应该为第一行的每一列设置值,只需对类进行一次调用。

保护范围的问题的可能重复之处在于,不允许该人员再对该标题使用筛选器。另外,我想我需要一个循环,否则它会在第一行打印“订单号”。@Williamszr98好的,我可以调整我的答案,但我需要更清楚地了解您要做什么。请更新您的问题:您的1标题行中是否有20多个单元格,或20多张带有标题行的工作表?。还请澄清您希望打印的第一行内容,在您当前的问题中,您希望第一行、第一个单元格显示“订单号”。