将数据从另一个电子表格导出到新生成的电子表格

时间:2020-05-08 04:49:52

标签: google-apps-script google-sheets

我创建了一个按钮,该按钮每次被按下都会生成一个新的电子表格。 该部分工作正常。

但是,我还希望新的电子表格是“母亲”电子表格中数据的摘要。我希望能够在“母亲”电子表格中编写脚本,我可以将其链接到另一个按钮,该按钮在按下时会从“母亲”电子表格中提取数据并将其发送到新生成的电子表格。似乎有一种使用电子表格ID的方法,但是我遇到了一些问题,因为我从主电子表格中生成了大约100个新报表,并且数据需要立即导出。

这是到目前为止的代码:

     function NewSpreadsheets() {
  var FromDate = String(SpreadsheetApp.getActive().getRange('B3').getValue());
  var ToDate = String(SpreadsheetApp.getActive().getRange('C3').getValue());;  
  var SpreadsheetName = FromDate + ' to ' + ToDate + ' Summary';
  var NewSpreadsheet = SpreadsheetApp.create(SpreadsheetName, 101, 5);
} 

1 个答案:

答案 0 :(得分:0)

假设您要有两个按钮:一个用于创建新的电子表格,另一个用于添加原始电子表格中的数据,则可以在第一个函数中使用PropertiesService来存储创建的电子表格ID,可以在第二个中找到它:

第一个按钮附带的功能:

function createNewSpreadsheet() {
  var FromDate = SpreadsheetApp.getActive().getRange('B3').getValue();
  var ToDate = SpreadsheetApp.getActive().getRange('C3').getValue(); 
  var SpreadsheetName = FromDate + ' to ' + ToDate + ' Summary';
  var NewSpreadsheet = SpreadsheetApp.create(SpreadsheetName, 101, 5);
  var scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperty("Copy ID", NewSpreadsheet.getId()); // Store spreadsheet ID
}

第二个按钮附带的功能:

function copyDataToNewSpreadsheet() {
  var scriptProperties = PropertiesService.getScriptProperties();
  var spreadsheetId = scriptProperties.getProperty("Copy ID"); // Retrieve spreadsheet ID
  var newSpreadsheet = SpreadsheetApp.openById(spreadsheetId);
  // Copy data...
}

参考: