我有一个谷歌脚本,可以将我的数据范围从一个谷歌表格导入另一个谷歌表格,它工作得很好。
然而,我的问题是原始数据表每天由第三方(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 - 请分别继续。