google-apps-script - 将 n 个 Google 电子表格文件合并到 n 个工作表中
问题描述
说,我有 100 个谷歌电子表格文件,我需要合并到一个包含 100 个标签(表格)的文件中。是否可以使用应用程序脚本。目前我在下面有一个代码,
function popForm() {
var ss = SpreadsheetApp.getActive();
for(var b = 0; b<100; b++){
var sheet = ss.getSheetByName('Sheet '+b);
var numberRows = sheet.getDataRange().getNumRows();
....
....
上面的代码适用于具有 100 个选项卡(表格)的电子表格。但是我有 100 个带有一个标签(表)的电子表格。
解决方案
解释:
- 您有一个
FolderId
包含所有电子表格文件的文件夹。您可以使用getFolderById()方法找到此文件夹。 - 您使用getFiles()方法获取此文件夹的文件,并使用 while 循环遍历这些文件。
- 对于每个文件,您都会获得第一张工作表,然后使用 copyTo()方法将其复制到源(活动)电子表格文件中。
- 新创建的工作表将以它来自的电子表格文件的名称命名。随意更改这部分或让我知道,以便我可以修改它。
解决方案:
你一定在找这个:
function myFunction() {
const source_sh = SpreadsheetApp.getActive();
const folder = DriveApp.getFolderById('FolderId');
const files = folder.getFiles();
while (files.hasNext()) {
var file = files.next();
var target_ss = SpreadsheetApp.openById(file.getId());
var target_sh = target_ss.getSheets()[0];
target_sh.copyTo(source_sh).setName(file.getName());
}
}
推荐阅读
- rust - 映射数字范围 Rust
- plot - 如何限制以前的情节?
- database - 从 AB BA 中删除重复数据
- spring - MockMvc WebMvcTests Spring Hateoas 返回多个 NestedLinks
- c++ - 如何在 CycloneDDS C++ 中设置 QOS?
- shell - 将 curl 输出存储到变量在 linux 中工作,但不能通过 Jenkins
- javascript - 我如何使用 JQuery 使其以非形式工作 resetAll
- javascript - 设置 jQuery Editable Select 的值
- sql-server - 我可以在 SSMS UI 的哪个位置看到用户的执行存储过程权限?
- reactjs - 在反应中使用 i18next 无法工作语言更改按钮