我有一个使用 Google 电子表格创建的发票列表。现在我想检索这些发票中的数据,以创建另一个名为“All”的电子表格,其中包含每张发票的一行。
Name Phone Street
John 677 Main
Mary 897 Niceday
有没有办法自动执行此操作,而不是一个一个地引用单元格?
还有一个:想象一下,我添加了一个新的发票文件,我希望添加后,其中的姓名、电话和街道自动添加到“全部”文件中。有可能吗?
我有一个使用 Google 电子表格创建的发票列表。现在我想检索这些发票中的数据,以创建另一个名为“All”的电子表格,其中包含每张发票的一行。
Name Phone Street
John 677 Main
Mary 897 Niceday
有没有办法自动执行此操作,而不是一个一个地引用单元格?
还有一个:想象一下,我添加了一个新的发票文件,我希望添加后,其中的姓名、电话和街道自动添加到“全部”文件中。有可能吗?
如果所有文件都位于单个驱动器文件夹中,则您可以从每个电子表格文件中检索所有数据,并使用 onOpen 函数将其添加到主电子表格文件中。
function onOpen(){
// This active sheet.
var mainSpreadsheet = SpreadsheetApp.getActiveSheet();
// To store all of the invoice data
var invoiceData = [];
// Get all files inside a drive folder
var files = DocsList.getFolderById("DRIVE FOLDER ID").getFiles();
// For each file in the folder
for (var i in files) {
// Open the current spreadsheet in the interation
var thisSpreadsheet = SpreadsheetApp.openById(files[i].getId());
// Get the contents as an array and add it to invoiceData
invoiceData.push(thisSpreadsheet.getDataRange().getValues());
}
// Clear all content in active sheet
mainSpreadsheet.getDataRange.clearContent();
// Get the write range from the number of values inside invoiceData
var writeRange = mainSpreadsheet.getRange(1,1,invoiceData.length, invoiceData[0].length)
// Add the data to the spreadsheet.
writeRange.setValues(invoiceData);
}
这是一个示例,未经测试。它会根据文件中的标题而有所不同,但它应该可以帮助您入门。