javascript - App Script 调试成功但执行失败,为什么?

标签 javascript arrays google-apps-script google-drive-api google-apps-script-editor

我需要从应用脚本将 csv 文件导入到指定的 Google 工作表中。我开发了一个可以完美运行的代码,但它没有显示任何输出。我所做的是创建一个数组来插入 csv 文件列表,并创建另一个数组来在事件电子表格中插入工作表名称。然后我创建了一个 if 循环,如果该数组的索引等于包含工作表的数组的索引,则包含数组的 csv 文件将推送数据。我把它放在一个整体 for 循环中进行迭代。下面是我的代码。

function importCSVFromGoogleDrive() {

 var ss = SpreadsheetApp.getActiveSpreadsheet();// get the active spreadsheet


["Sheet1", "Sheet2", "Sheet3"].forEach(function (s) {
 var sheetArray = ss.getSheetByName(s);                   // getSheetByName


var numSheets = sheetArray.length; // save sheets in Array 


for (j = 0; j < numSheets; j++) { //loop to iterate

 var fileArray = DriveApp.getFilesByName["Acsv","Bcsv"]; //get csv files as a list 

 var file = fileArray.length; // add the list into an array

 var csvData = Utilities.parseCsv(file.getBlob().getDataAsString()); // parse csv data


 if(numSheets==csvData){  // if array Index No of numSheets equals to index of file array

    numSheets.push(csvData);// push csv data into the sheet


    numSheets.clearContents(); //clear current contents in the sheet
    numSheets.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData); // set values to the sheet
      }

   }

 })
}

代码没有显示任何错误,但也没有从 csv 文件输入任何数据到工作表。谁能解释一下为什么会这样?

最佳答案

该行使用了错误的 getFilesByName 语法:

var fileArray = DriveApp.getFilesByName["Acsv","Bcsv"]; //get csv files as a list 

正确的语法是:

DriveApp.getFilesByName(name);

其中 name 是一个字符串。您应该相应地更改您的代码。

另一方面

var numSheets = sheetArray.length; // save sheets in Array 

var file = fileArray.length; // add the list into an array

分别为 numSheetsfile 分配一个整数,因此接下来的代码行不会执行您期望的操作,例如

numSheets.push(csvData);// push csv data into the sheet

var csvData = Utilities.parseCsv(file.getBlob().getDataAsString()); // parse csv data

考虑抽出一些时间来了解 Google Apps 脚本调试器的工作原理,以便您可以使用它来高效地调试代码。

引用

关于javascript - App Script 调试成功但执行失败,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57098414/

相关文章:

google-apps-script - 反向缩短的 URL 以获取 Google 表格中缩短前的原始 URL

javascript - 如何使用javascript删除cookie

javascript - 如何发送包含通过 AJAX 提交的 $_POST 数据的电子邮件

c++ - 指针数组问题

google-apps-script - 如何使用 Google App Script 合并 Google 电子表格中的多个标签?

google-apps-script - 谷歌脚本: Creating a Folder After Form Submission

javascript - 简单的 jquery trim 输入减少到 2 个字符

javascript - 解析后的 AngularJS 负载 Controller 不起作用

c - 分配多维数组后内存泄漏

javascript - 将元素添加到 CoffeeScript 中的有序数组