Mad*_*amb 0 csv google-sheets google-apps-script
我需要遍历源文件夹中的每个 .CSV 文件,并将每个文件中的数据复制到一个 Google Sheets 文件中的新工作表/标签中。我找到了一些与此主题相关的答案,但是我在两个代码集上都遇到了错误。这是我试图从中构建解决方案的代码:
function appendCSV() {
var file = DriveApp.getFilesByName("myCSVFile.csv").next();
var csvData = Utilities.parseCsv(file.getBlob().getDataAsString());
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow=sheet.getLastRow();
sheet.getRange(lastRow, 1, csvData.length, csvData[0].length).setValues(csvData);
}
Run Code Online (Sandbox Code Playgroud)
这是我遇到的第一个错误:
无法检索下一个对象:迭代器已结束。(第 2 行,文件“代码”)
我可以.next()从第 2 行删除该方法,然后出现另一个错误:
类型错误:在对象 FileIterator 中找不到函数 getBlob。(第 3 行,文件“代码”)
任何人都可以确定这里可能出了什么问题吗?
您需要提供电子表格 ID 和文件夹 ID。此外,您可能希望更改创建的工作表/选项卡的工作表名称。
function loadCSVFilesIntoSheets() {
var ss=SpreadsheetApp.openById('SpreadsheetId')
var folder=DriveApp.getFolderById('folderId');
var files=folder.getFilesByType(MimeType.CSV);
while(files.hasNext()) {
var file=files.next();
var vA=Utilities.parseCsv(file.getBlob().getDataAsString());
var ts=Utilities.formatDate(new Date(),Session.getScriptTimeZone(),"MM/dd/yy HH:mm:ss")
var sh=ss.insertSheet(file.getName()+'-'+ts);
sh.getRange(1,1,vA.length,vA[0].length).setValues(vA);
}
}
Run Code Online (Sandbox Code Playgroud)
获取电子表格 ID: https://docs.google.com/spreadsheets/d/SpreadsheetIdHere/edit#gid=1655026329
文件夹 ID:
https://drive.google.com/drive/folders/folder id here
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |