【发布时间】:2016-02-19 09:16:24
【问题描述】:
我有 140 张单独的工作表,并且计数合并为一张单独的工作表。通常的导入范围或数组等对于我必须合并的工作表数量来说太多了。
每张表的标题行是相同的,所以我只需要将每张表中从第 3 行开始的所有数据复制到新的主表中。每个中的数据量是可变的。我不介意复制包括标题在内的所有内容,因为我可以使用过滤器手动删除它们。
我找到了我运行的这段代码 (https://ctrlq.org/code/19980-merge-google-spreadsheets),但在参数列表之后我不断收到错误 - Missing )。 (第 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 的?
谢谢
【问题讨论】:
-
这是您代码中的代码还是示例的文字副本?我似乎无法复制您的问题。
-
从你所说的来看,我认为这段代码没有达到你的预期。这是使用 copyTo(newSpreadsheet) developers.google.com/apps-script/reference/spreadsheet/… 的文档,它将一个选项卡/选项卡,即工作表从不同的电子表格复制到一个电子表格中(但仍然是相同数量的选项卡,但现在只在一个电子表格中)。您需要定义如何定位所有 140 个电子表格及其选项卡。它们是否都在一个文件夹中......并且它们是该文件夹中唯一的文件吗?每个ss是否只包含你需要复制的标签?
-
@RobinGertenbach 我有上面粘贴的代码,除了 SOURCE 我有存储 140 个文件的谷歌驱动器文件夹的密钥
-
@DavidTew 它的 140 个文件都在一个文件夹中,我想将一个选项卡复制到一个主文件中
-
我会试试代码,让你知道我得到了什么
标签: google-apps-script merge google-sheets