Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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 将多个字段添加到一行_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 将多个字段添加到一行

Javascript 将多个字段添加到一行,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,首先,我对这个非常陌生。我们使用google表单作为不同的排序形式,希望在单个源中捕获数据。我试图避免单独映射每个单元格。下面是我必须捕获的100个字段的开始。我得到的错误是,我的数据3不匹配我的列10。有没有办法布置不同的范围,让他们都挤到一排 //Input Values function SubmitData() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var formS = ss.getAc

首先,我对这个非常陌生。我们使用google表单作为不同的排序形式,希望在单个源中捕获数据。我试图避免单独映射每个单元格。下面是我必须捕获的100个字段的开始。我得到的错误是,我的数据3不匹配我的列10。有没有办法布置不同的范围,让他们都挤到一排

 //Input Values
    function SubmitData() {
  var ss        = SpreadsheetApp.getActiveSpreadsheet();
  var formS    = ss.getActiveSheet(); 
  var datasheet = ss.getSheetByName("Data");
       
  var values = [[formS.getRange("B1:B4").getValues(),
                 formS.getRange("D2:D4").getValues(),
                 formS.getRange("F2").getValue()]];
  
  datasheet.getRange(datasheet.getLastRow()+1, 1, 1,10).setValues(values)

我认为在您的脚本中,用于放入电子表格的
值必须是二维数组。但是,
formS.getRange(“B1:B4”).getValues()
formS.getRange(“D2:D4”).getValues()
是二维数组,而
formS.getRange(“F2”).getValues()
不是数组。我想这就是你的问题所在

为了将这些值放到工作表的一行
数据
,下面的修改如何

修改脚本: 发件人: 致:
  • 通过这种修改,
    值类似于
    [['B1',B2',B3',B4',D2',D3',D4',F2']
    。数组的每个值都是单元格的符号。并且,这将放在图纸最后一行的下一行
    Data
  • 在这种情况下,
    值[0]
    的长度为
    8
    。它不是
    10
    。所以我使用了
    值[0]。长度
参考资料:
var values = [[formS.getRange("B1:B4").getValues(),
               formS.getRange("D2:D4").getValues(),
               formS.getRange("F2").getValue()]];

datasheet.getRange(datasheet.getLastRow()+1, 1, 1,10).setValues(values)
var values = [[
  ...formS.getRange("B1:B4").getValues().flat(),
  ...formS.getRange("D2:D4").getValues().flat(),
  formS.getRange("F2").getValue()
]];
datasheet.getRange(datasheet.getLastRow() + 1, 1, 1, values[0].length).setValues(values);