[英]Using Google Apps Script to copy .CSV file data to Google Sheets
我需要遍歷源文件夾中的每個 .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);
}
這是我遇到的第一個錯誤:
無法檢索下一個對象:迭代器已結束。 (第 2 行,文件“代碼”)
我可以從第 2 行中刪除.next()
方法,然后出現另一個錯誤:
類型錯誤:在對象 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);
}
}
獲取電子表格 ID: https://docs.google.com/spreadsheets/d/SpreadsheetIdHere/edit#gid=1655026329
: https://docs.google.com/spreadsheets/d/SpreadsheetIdHere/edit#gid=1655026329
文件夾 ID: https://drive.google.com/drive/folders/folder id here
: https://drive.google.com/drive/folders/folder id here
你得到的第一個錯誤
無法檢索下一個對象:迭代器已結束。 (第 2 行,文件“代碼”)
發生是因為顯然沒有任何名為myCSVFile.csv
文件
var file = DriveApp.getFilesByName("myCSVFile.csv").next();
出於同樣的原因,出現第二個錯誤。
首先,您應該仔細檢查文件名是否正確,以及該文件是否由用於運行腳本的同一帳戶擁有或共享。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.