【发布时间】:2020-06-11 09:39:52
【问题描述】:
我有一个 Google 脚本,可以将我的数据范围从一个 Google 表格导入到另一个 Google 表格,并且它运行良好。
然而,我的问题是原始数据表每天都会由第三方 (CloudHQ) 更新,它会替换原始版本,这意味着会创建一个新的电子表格 ID,这会导致该脚本每天都不正确。
有没有办法通过另一种谷歌脚本方法通过使用文件名或文件位置等常量来导入数据范围?
请在下面找到我的代码:
var sourceSpreadsheetID = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var sourceWorksheetName = "CustomSheetName1";
var targetSpreadsheetID = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var targetWorksheetName = "Sheet1";
function importData1() {
var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
//var thisData = thisWorksheet.getDataRange();
var thisData = thisSpreadsheet.getRangeByName("B:B");
var toSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetID);
var toWorksheet = toSpreadsheet.getSheetByName(targetWorksheetName);
var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(), thisData.getNumColumns())
toRange.setValues(thisData.getValues());
}
【问题讨论】:
-
您是第三方替换电子表格中包含的工作表还是整个电子表格(源或目标)?如果是后者,电子表格名称和包含它的文件夹是否仍然相同,并且同一文件夹中只有一个具有此名称的电子表格?
-
尝试查看 DriveApp 参考。那应该让你继续前进。 developers.google.com/apps-script/reference/drive/drive-app
-
@ziganotschka 它替换了整个电子表格。没错,是的,文件名完全相同,并且该文件夹中只有 1 个具有该名称的文件。
-
如何从“thisWorksheet”中获取特定范围的数据?我想获取“B1:B21”的数据
标签: javascript google-apps-script google-sheets google-drive-api