Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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
Javascript *GAS*从google表单中的字符串数组创建标题_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript *GAS*从google表单中的字符串数组创建标题

Javascript *GAS*从google表单中的字符串数组创建标题,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我试图用GAS在Google表单中创建两个标题 我想从A1开始写入每个单元格,在数组“values”中写入第一个字符串,然后转到单元格B1,在数组“values”中写入第二个字符串。依此类推,具体取决于数组“值”的大小 我做错了什么 function formatSheet(){ var name = "Formatted Sheet"; var values = [["Description", "Quantity"]]; ss.setActiveSheet(ss.g

我试图用GAS在Google表单中创建两个标题

我想从A1开始写入每个单元格,在数组“values”中写入第一个字符串,然后转到单元格B1,在数组“values”中写入第二个字符串。依此类推,具体取决于数组“值”的大小

我做错了什么

function formatSheet(){
    var name =  "Formatted Sheet";
    var values = [["Description", "Quantity"]];
    ss.setActiveSheet(ss.getSheets()[0]);
    ss.renameActiveSheet(name);
    createHeaders(name,values);
}

function createHeaders(name,values){
    var sheet = ss.getSheetByName(name);  

    for(var i = 1; i < values.length; ++i){
        for(j=0; j<values.length; ++j){
            //create the headers
            sheet.getRange(1, i).setValues(values[j]);
    } 
}
函数格式表(){
var name=“格式化的工作表”;
var值=[“说明”,“数量”];
ss.setActiveSheet(ss.getSheets()[0]);
ss.重命名活动表(名称);
createHeaders(名称、值);
}
函数createHeaders(名称、值){
var sheet=ss.getSheetByName(名称);
对于(变量i=1;ifor(j=0;j也许我误解了您的意图,但看起来您的操作过于复杂。如果您只设置了标题,那么您知道值数组中只有一个数组-这意味着您可以取消for循环,只获取其中第一个数组的长度。请参阅我的示例:

function formatSheet(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var name =  "Format2";
  var values = [["Description", "Quantity"]];
  ss.setActiveSheet(ss.getSheets()[0]);
  ss.renameActiveSheet(name);
  var sheet = ss.getSheetByName(name);
  var cols = values[0].length;
  sheet.getRange(1, 1, 1, cols).setValues(values);
}

了解您遇到的错误也会很有帮助。

修改了Jens Astrup的解决方案,将标题插入到当前活动的电子表格中

function SetHeadersToActiveSheet(){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = SpreadsheetApp.getActiveSheet();
    var values = [["Description", "Quantity", "Amount"]];
    var cols = values[0].length;
    sheet.getRange(1, 1, 1,cols).setValues(values);
}

谢谢!你的想法很有帮助。我把它复杂化了。这就成功了,谢谢。我没有收到错误,也没有因为任何原因调试器没有启动该函数。我没有得到任何我知道的东西。请在代码中添加一些描述。