我有140张单独的纸张,并计算合并为一张单独的纸张。通常的importrange或数组等对于我必须合并的工作表数量来说太多了。
每张纸上的标题行是相同的,所以我只需要将第3行以后的每张纸中的所有数据复制到新的主页中。每个数据量都是可变的。我不介意复制包括标题在内的所有内容,因为我可以使用过滤器手动删除它们。
我找到了这个代码(https://ctrlq.org/code/19980-merge-google-spreadsheets),我在参数列表之后运行并且我一直收到错误 - 缺失。 (第4行,文件“代码”)
我将SOURCE设置为文件夹键,其中保留了我要合并的所有文件。我是编写脚本的新手:
function mergeSheets() {
/* Retrieve the desired folder */
var myFolder = DriveApp.getFoldersByName(SOURCE).next();
/* Get all spreadsheets that resided on that folder */
var spreadSheets = myFolder.getFilesByType("application/vnd.google-apps.spreadsheet");
/* Create the new spreadsheet that you store other sheets */
var newSpreadSheet = SpreadsheetApp.create("Merged Sheets");
/* Iterate over the spreadsheets over the folder */
while(spreadSheets.hasNext()) {
var sheet = spreadSheets.next();
/* Open the spreadsheet */
var spreadSheet = SpreadsheetApp.openById(sheet.getId());
/* Get all its sheets */
for(var y in spreadSheet.getSheets()) {
/* Copy the sheet to the new merged Spread Sheet */
spreadSheet.getSheets()[y].copyTo(newSpreadSheet);
}
}
}
有人能告诉我这个错误是什么意思吗?我没有错过任何一个)。我怀疑问题是我如何定义SOURCE?
由于
答案 0 :(得分:0)
尝试这样的第一部分,并尝试从这里弄清楚。
var folder= DriveApp.getFolderById('Your_folderID');
var files = folder.getFilesByType(MimeType.GOOGLE_SHEETS);//this is the right getFilesByType string
while (files.hasNext()) {
var sheet = SpreadsheetApp.open(files.next());
var spreadSheet = SpreadsheetApp.openById(sheet.getId());
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var newSpreadSheet = ss.getActiveSheet();
它只是一张140张的电子表格,还是多张电子表格分成的?当你说copyTo时,你可能也想设置一个范围。
之类的东西for(var y in spreadSheet.getSheets()) {
var Allsheets = spreadSheet.getSheets[y]();
var data = Allsheets.getDataRange().getValues();{
var target = new Array();
for(n=0;n<data.length;++n){
target.push(data[n]);
}
}
newSpreadsheet.getRange(2,1,target.length,target[0].length).setValues(target);
}