我有文件夹上的文件,我将它们导入谷歌表。我需要添加文件名到第一列导入前,但我的脚本只添加到第一个单元格导入前
所以它给了我:
| | |
| - ------| - ------|
| 文件名|铅笔|
| 2022年1月1日|笔|
| 2022年2月1日|帽子|
我需要
| | | |
| - ------| - ------| - ------|
| 文件名|2022年1月1日|铅笔|
| 文件名|2022年1月1日|笔|
| 文件名|2022年2月1日|帽子|
function Import_Kredo() {
var arr = [];
var files = DriveApp.getFolderById("13kymSiqX0-L6a9ev4It1_BEjH-xM8rnc").getFiles();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var copySheet = ss.getSheetByName("Table 1");
copySheet.getRange('A2:G').clear();
while (files.hasNext()) {
var file = files.next();
var mimeType = file.getMimeType();
var ss1 = null, id = null;
if (mimeType == MimeType.MICROSOFT_EXCEL) {
id = Drive.Files.copy({ mimeType: MimeType.GOOGLE_SHEETS }, file.getId()).id;
ss1 = SpreadsheetApp.openById(id);
} else if (mimeType == MimeType.GOOGLE_SHEETS) {
ss1 = SpreadsheetApp.open(file);
}
if (!ss1) continue;
var sheet = ss1.getSheetByName("Table 1");
if (!sheet) continue;
var sheetsRange = sheet.getDataRange();
var sheetsValues = sheetsRange.getValues().filter(r => r[1]).filter(e => e);
var v = sheetsValues.slice(1);
console.log([file.getName(), v])
arr = arr.concat([[file.getName(), ...Array(v[0].length - 1).fill(null)], ...v]);
if (id) DriveApp.getFileById(id).setTrashed(true); // or Drive.Files.remove(id);
}
copySheet.getRange(5, 1, arr.length, arr[0].length).setValues(arr);
}
1条答案
按热度按时间yi0zb3m41#
在你的情况下,下面的修改怎么样?
发件人:
收件人: