Google apps script 如何将2个脚本正确合并为1个脚本?

Google apps script 如何将2个脚本正确合并为1个脚本?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,亲爱的社区: 我在将两个单独的脚本合并为一个脚本时遇到困难。如果单独运行,两者都可以正常工作,但如果两者都存在于单个文件中,则不能正常工作。第一个脚本将CSV导入我的电子表格,并将其导入名为“导入”的临时工作表中。第二个脚本将“Imported”中的行导入名为“Main”的永久工作表,然后删除临时工作表 我曾尝试在同一个函数下合并两个脚本,但这只会作为输出“导入”工作表,而不会填充主工作表。如果我创建一个新函数,它首先调用函数import CSV,然后调用函数import to Main,也会发

亲爱的社区:

我在将两个单独的脚本合并为一个脚本时遇到困难。如果单独运行,两者都可以正常工作,但如果两者都存在于单个文件中,则不能正常工作。第一个脚本将CSV导入我的电子表格,并将其导入名为“导入”的临时工作表中。第二个脚本将“Imported”中的行导入名为“Main”的永久工作表,然后删除临时工作表

我曾尝试在同一个函数下合并两个脚本,但这只会作为输出“导入”工作表,而不会填充主工作表。如果我创建一个新函数,它首先调用函数import CSV,然后调用函数import to Main,也会发生同样的情况

对于CSV导入,我使用以下脚本,源于:

函数importsv(){
var fSource=DriveApp.getFolderById('folder_id_removed');
//reports\u folder\u id=保存csv报告的文件夹的id
var fi=fSource.getFilesByName('data.csv');
//最新报告文件
var ss=SpreadsheetApp.openById('spreadsheet_id_removed');
//data_sheet_id=电子表格的id,该电子表格保存要用新报告数据更新的数据
如果(fi.hasNext()){//如果报告文件夹中存在“report.csv”文件,则继续
var file=fi.next();
var csv=file.getBlob().getDataAsString();
var csvData=CSVToArray(csv);//有关CSVToArray函数,请参见下文
var newsheet=ss.insertSheet('Imported');//创建一个'NEWDATA'表来存储导入的数据
//循环浏览csv数据数组,并作为行插入(追加)到“NEWDATA”工作表中

对于(var i=0,lenCsv=csvData.length;i@Egor p)-您不能以这种方式完全组合两个脚本。如果两个工作表位于同一个电子表格上,您应该能够从新项目运行第二个函数:File>new>project

您可以将第二个函数设置为onEdit(e)而不是importRows(),这意味着从CSV导入完成后,它应该已经复制到永久工作表中

希望这有帮助!

试试这个:

function importCSV() {
  var fSource=DriveApp.getFolderById('folder_id_removed'); 
  var fi=fSource.getFilesByName('data.csv'); 
  var ss=SpreadsheetApp.openById('spreadsheet_id_removed'); 
  if (fi.hasNext()) { 
    var file=fi.next();
    var csv=file.getBlob().getDataAsString();
    var csvData=CSVToArray(csv);
    var tsh=ss.getSheetByName('Main');
    for (var i=1;i<csvData.length;i++) {
      tsh.appendRow(csvData[i]);
    }
  }
}
函数importsv(){
var fSource=DriveApp.getFolderById('folder_id_removed');
var fi=fSource.getFilesByName('data.csv');
var ss=SpreadsheetApp.openById('spreadsheet_id_removed');
如果(fi.hasNext()){
var file=fi.next();
var csv=file.getBlob().getDataAsString();
var csvData=CSVToArray(csv);
var tsh=ss.getSheetByName('Main');

对于(var i=1;我想问你一个具体的问题吗?如果我没有正确指定问题,我深表歉意,但是你下面的回答为我解决了这个问题,谢谢!
function importRows() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Imported');
  var des=ss.getSheetByName('Main');
  var src=sh.getRange('A2:F500');
  var vA=src.getValues();
  for(var i=0;i<vA.length;i++) {
    if(vA[i].join("")) {
      des.appendRow(vA[i]);
    }
  }
  ss.deleteSheet(sh)
} 
function importCSV() {
  var fSource=DriveApp.getFolderById('folder_id_removed'); 
  var fi=fSource.getFilesByName('data.csv'); 
  var ss=SpreadsheetApp.openById('spreadsheet_id_removed'); 
  if (fi.hasNext()) { 
    var file=fi.next();
    var csv=file.getBlob().getDataAsString();
    var csvData=CSVToArray(csv);
    var tsh=ss.getSheetByName('Main');
    for (var i=1;i<csvData.length;i++) {
      tsh.appendRow(csvData[i]);
    }
  }
}