【问题标题】:import csv with google apps script使用谷歌应用脚​​本导入 csv
【发布时间】:2021-11-15 07:52:39
【问题描述】:

我需要帮助,

我发现此代码可以使用应用程序脚本在 google 表格中导入 csv。这是工作查找,但我想在另一个工作表中导入同一个文件。

我找不到输入工作表编号 (gid) 的代码

function myFunction() {
  function importData()
  {
    var ss = SpreadsheetApp.getActive();
    var url = 'https://your-data-source.csv';
    var text = UrlFetchApp.fetch(url).getContentText();
    var csvData = Utilities.parseCsv(text);
    var sheet = ss.getSheetByName('Sheet1');
    for (var i = 0; i < csvData.length; i++) {
      sheet.getRange(i+1, 1, 1, csvData[i].length).setValues(new Array(csvData[i]));
    }
  }
  importData();
}

exampel

谢谢

【问题讨论】:

    标签: csv google-apps-script google-sheets


    【解决方案1】:

    我相信你的目标如下。

    • 您希望使用 Google Apps 脚本将 CSV 数据放入活动电子表格中的规格表中。
    • i can't find the code to enter number ( gid ) of my sheet,您想使用工作表 ID (gid) 选择工作表。

    修改点:

    • 要将值放到特定的工作表中,您可以通过将示例图像中的var sheet = ss.getSheetByName('Sheet1'); 修改为 var sheet = ss.getSheetByName('importCSV'); 来实现。
    • 如果要使用工作表 ID (gid) 选择工作表,可以使用 var sheet = ss.getSheets().filter(s =&gt; s.getSheetId() == gid); 之类的脚本。
    • 在您的脚本中,每一行都循环放入工作表中。在这种情况下,处理成本会很高。您可以将 for 循环修改为 sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);

    当以上几点反映在你的脚本中,就变成了如下。

    修改后的脚本:

    在此修改后的脚本中,CSV 数据使用工作表 ID (gid) 放入特定工作表。

    function myFunction() {
      var ss = SpreadsheetApp.getActive();
      var url = 'https://your-data-source.csv';
      var text = UrlFetchApp.fetch(url).getContentText();
      var csvData = Utilities.parseCsv(text);
    
      var gid = "1234567890";  // Please set your sheet ID (gid).
      var sheet = ss.getSheets().filter(s => s.getSheetId() == gid);
      if (sheet.length == 1) {
        sheet[0].getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
      }
    }
    

    或者,您也可以通过将var sheet = ss.getSheetByName('Sheet1'); 修改为 var sheet = ss.getSheetByName('importCSV'); 来实现您的目标。在这个修改后的脚本中,CSV 数据被放入工作表importCSV

    function myFunction() {
      var ss = SpreadsheetApp.getActive();
      var url = 'https://your-data-source.csv';
      var text = UrlFetchApp.fetch(url).getContentText();
      var csvData = Utilities.parseCsv(text);
    
      var sheet = ss.getSheetByName('importCSV');  // Please set the sheet name.
      sheet[0].getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
    }
    

    注意:

    • 作为附加信息,当您要将 CSV 数据放入其他电子表格中的工作表时,可以通过将var ss = SpreadsheetApp.getActive(); 修改为var ss = SpreadsheetApp.openById("###Spreadsheet title###"); 来实现。

    参考资料:

    【讨论】:

    • 非常感谢 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多