Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 通过数组选择要追加到google工作表中的特定行_Javascript_Arrays_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 通过数组选择要追加到google工作表中的特定行

Javascript 通过数组选择要追加到google工作表中的特定行,javascript,arrays,google-apps-script,google-sheets,Javascript,Arrays,Google Apps Script,Google Sheets,基本上,我有一个数组的信息,我现在可以添加到谷歌表单中,问题是很多信息对于我的需要是不必要的,所以我想找到一种方法,只添加我需要的列 上面的图片显示了一切的样子 基本上,这个想法是让它看起来像下图。 所以基本上我只需要附加第4,5,7列 我现在为什么要这样做 if (tozip.getContentType() == "application/zip"){ //for ZIP files var unZip = Utilities.unzip(tozip); //ass

基本上,我有一个数组的信息,我现在可以添加到谷歌表单中,问题是很多信息对于我的需要是不必要的,所以我想找到一种方法,只添加我需要的列

上面的图片显示了一切的样子

基本上,这个想法是让它看起来像下图。

所以基本上我只需要附加第4,5,7列

我现在为什么要这样做


     if (tozip.getContentType() == "application/zip"){  //for ZIP files
    var unZip = Utilities.unzip(tozip); //assigns the unzipped file to a new variable


    var table = Utilities.parseCsv(unZip[0].getDataAsString());// assigns the data to variable



  for (var i = 0; i < table.length; i++) {//loops trought the array an appends the data as it goes.

    sheet.appendRow(table[i]);   


    }   


如果(tozip.getContentType()=“application/zip”){//for zip文件
var unZip=Utilities.unZip(tozip);//将解压后的文件分配给一个新变量
var table=Utilities.parseCsv(解压[0].getDataAsString());//将数据分配给变量
对于(vari=0;i
数据来自csv文件,如下所示

【I申请,申请日期,I资格,资助日期,I资助,申请贷款金额,资助金额】,[1,2020-02-03,1,2020-02-03,1,1300.0000],[1,2019-12-29,1,2019-12-30,1,3000.0000,2000.0000],[1,2020-01-27,1,2020-01-01-28,1800.0000],[1,2020-01-08,1,2020-01-10,1,2500.0000,2500.0000],[112020-02-04,112020-02-10,11400.0000],[121020-01-21,125000.0000,2000.0000],[121020-02-06,121020-02-06,11100.0000,1400.0000],[121020-02-01,121020-02-04,11500.0000,601.0000],[121020-02-11,112020-02-11,1500.0000,800.0000]]

是的,有很多混乱的csv数据。 我尝试将其添加到代码中,并对其进行了一些修改,以便它可以选择内部数据

 for (var i = 0; i < table.length; i++) {//loops trought the array an appends the data as it goes.
var columns = [];  
    columns.push(3);
    columns.push(4);
    columns.push(6);   

 sheet.appendRow(table[i][columns]);   

    }   
for(var i=0;i
但它不起作用我对这类东西非常陌生,所以我很确定这不是从数组中选择所需信息的正确方法

如果我需要详细说明,请告诉我,我不太擅长解释这些东西。 提前感谢您的回答,我非常感谢您在这方面的帮助。

  • 您希望从通过解析CSV数据检索的数据中检索列“D”、“E”和“G”。
    • 在脚本中,
      var table=Utilities.parseCsv的
      table
      (解压[0].getDataAsString());
      是问题中显示的二维数据
  • 您希望将检索到的值放入电子表格
  • 您希望使用谷歌应用程序脚本实现这一点
如果我的理解是正确的,那么这个答案呢?请把它看作是几种可能的答案之一

修改点:
  • var table=Utilities.parseCsv的
    table
    (解压[0].getDataAsString());
    是二维数组
  • 当使用
    for(var i=0;i
    时,每一行都可以通过
    table[i]
    进行检索。而列“D”、“E”和“G”中的值可以通过
    table[i][3]、table[i][4]、table[i][6]
    进行检索。
    • 在这次修改中,
      var values=[]
      已准备就绪,每一行都有
      值。push([table[i][3]、table[i][4]、table[i][6]])
  • 在for循环中使用
    appendRow()
    方法时,过程成本会很高。因此,在这种情况下,会在for循环中创建一个数组。然后使用
    setValues()
    将该数组放入电子表格。这样可以降低成本
当上述各点反映到脚本中时,它将变成如下所示

修改脚本:
var table=Utilities.parseCsv(解压[0].getDataAsString());
//我修改了下面的脚本。
var值=[];
对于(变量i=0;i
  • 在上面的脚本中,值被放在“Sheet1”中。如果要更改此值,请修改
    getSheetByName(“Sheet1”)
  • 在本例中,
    table
    var table=Utilities.parseCsv(解压[0].getDataAsString())
注:
  • var table=Utilities.parseCsv(解压[0].getDataAsString())
    未返回CSV数据数组时,无法使用上述修改的脚本。请注意此操作
参考资料:
如果我误解了你的问题,而这不是你想要的方向,我道歉。

  • 您希望从通过解析CSV数据检索的数据中检索列“D”、“E”和“G”。
    • 在脚本中,
      var table=Utilities.parseCsv的
      table
      (解压[0].getDataAsString());
      是问题中显示的二维数据
  • 您希望将检索到的值放入电子表格
  • 您希望使用谷歌应用程序脚本实现这一点
如果我的理解是正确的,那么这个答案呢?请把它看作是几种可能的答案之一

修改点:
  • var table=Utilities.parseCsv的
    table
    (解压[0].getDataAsString());
    是二维数组
  • 当使用
    for(var i=0;i
    时,每一行都可以通过
    table[i]
    进行检索。而列“D”、“E”和“G”中的值可以通过
    table[i][3]、table[i][4]、table[i][6]
    进行检索。
    • 在这次修改中,
      var values=[]
      已准备就绪,每一行都有
      值。push([table[i][3]、table[i][4]、table[i][6]])
  • appendRow()
    的方法为
    var table = Utilities.parseCsv(unZip[0].getDataAsString());
    
    // I modified below script.
    var values = [];
    for (var i = 0; i < table.length; i++) {
      values.push([table[i][3], table[i][4], table[i][6]]);
    }
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
    sheet.getRange(sheet.getLastRow() + 1, 1, values.length, values[0].length).setValues(values);