[英]How to import data from another Google Sheet using Google Script without using Spreadsheet ID
I have a Google Script that imports my data range from one Google Sheet to another Google Sheet and it works perfectly.我有一个 Google 脚本,可以将我的数据范围从一个 Google 表格导入到另一个 Google 表格,并且运行良好。
My issue is however the original data sheet gets updated daily by a third party (CloudHQ) which replaces the original version, this means that a new spreadsheet ID is created which renders this script incorrect daily.然而,我的问题是原始数据表每天都会由第三方 (CloudHQ) 更新,它替换了原始版本,这意味着创建了一个新的电子表格 ID,这使得该脚本每天都不正确。
Is there a way to import a data range by another google script method by using something constant such as the file name or file location?有没有办法通过使用文件名或文件位置等常量来通过另一种谷歌脚本方法导入数据范围?
Please find my code below:请在下面找到我的代码:
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());
}
Sample for retrieving the ID of the source spreadsheet用于检索源电子表格 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());
}
If it is the ID of the destination spreadsheet you want to retrieve - proceed respectively.如果它是您要检索的目标电子表格的 ID - 分别继续。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.