google-apps-script - 如何将包含 n 个电子表格的文件夹中的数据提取到一个电子表格中?
问题描述
我对以下代码有疑问。
function getData() {
var files = DriveApp.getFolderById("1w86dQcDzTWC6qcCVGaEUo1tIuaaZkWEC").getFiles()
while (files.hasNext()) {
var file = files.next();
var shoot = SpreadsheetApp.openById(file.getId());
var sourceSheet = shoot.getSheets()[0];
var sourceRange = sourceSheet.getRange("C2:C");
var sourceValues = sourceRange.getValues();
var sourceRange2 = sourceSheet.getRange("D2:D");
var sourceValues2 = sourceRange2.getValues();
var destSheet = SpreadsheetApp.getActive().getSheets()[0];
var destRange = destSheet.getRange("D2:D");
destRange.setValues(sourceValues);
var destRange2 = destSheet.getRange("E2:E");
destRange2.setValues(sourceValues2);
}
}
它的作用是只从一个电子表格中获取数据,而不是从多个电子表格中获取数据,我需要帮助来获取所有工作表的数据而不覆盖数据
解决方案
好吧,终于我用getLastRow方法解决了这个小问题,下面我留下解决它的代码,希望有一天有人能提供帮助。
function getData() {
var files = DriveApp.getFolderById("1mHuYqG2aU9EFj8LE6T0DjzvZC7UK1vSj").getFiles()
while (files.hasNext()) {
var file = files.next();
var bring = SpreadsheetApp.openById(file.getId());
var sourceSheet = bring.getSheetByName("");
var n = sourceSheet.getMaxRows();
var srceRanSprint = sourceSheet.getRange(8, 2, n);
var srceValSprint = srceRanSprint.getValues();
var sourceRange2 = sourceSheet.getRange(2, 4, n);
var sourceValues2 = sourceRange2.getValues();
var destSheet = SpreadsheetApp.openById("").getSheets()[0];
var lastRow = destSheet.getLastRow() + 1;
var destRange = destSheet.getRange(lastRow, 4, n).setValues(sourceValues);
var destRange2 = destSheet.getRange(lastRow, 5, n).setValues(sourceValues2);
}
}
推荐阅读
- genome - 如何显示 CTCF 结合位点重叠的统计显着性
- excel - 使用 Excel VBA 计算精确匹配
- c# - PrintScreen 和 BitBlt 导致屏幕闪烁
- sorting - 为什么我不能用du删除文件夹?
- python - Python:有效地组合列表字典
- rust - 带有通配符使用声明的 Rust 子模块行为
- javascript - 在 JavaScript 中将日期转换为另一个时区并使用正确的时区打印
- python-3.x - BS4 找不到 li 项?
- swift - 请求结果结构 firebasedatabase Swift
- python - 无法在 conda python 3.8 env 上正确安装 awswrangler(连接问题)