簡體   English   中英

如何在不使用電子表格 ID 的情況下使用 Google 腳本從另一個 Google 表格導入數據

[英]How to import data from another Google Sheet using Google Script without using Spreadsheet ID

我有一個 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()); 
}

您需要瀏覽您的驅動器以查找具有給定名稱的文件並找出其 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 - 分別繼續。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM