如何在不使用电子表格 ID 的情况下使用 Google 脚本从其他 Google 表格导入数据



我有一个谷歌脚本,可以将我的数据范围从一个谷歌表格导入另一个谷歌表格,它工作得很好。

然而,我的问题是原始数据表每天由第三方(CloudHQ(更新,该第三方(CloudHQ(会替换原始版本,这意味着会创建一个新的电子表格ID,每天使该脚本不正确。

有没有办法通过使用诸如文件名或文件位置之类的常量通过另一种Google脚本方法导入数据范围?

请在下面找到我的代码:

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()); 
}

您需要浏览云端硬盘以查找具有给定名称的文件并找出其 ID

检索源电子表格 ID 的示例

var fileName = "PASTE HERE THE NAME OF YOUR SOURCE SPREDSHEET";
var file = DriveApp.getFilesByName(fileName).next();
var sourceSpreadsheetID = file.getId();
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()); 
}

如果它是您要检索的目标电子表格的 ID - 请分别继续。

最新更新