[英]Google Apps Script - copy to existing spreadsheet
我正在嘗試使用Google Apps腳本copy()
將主電子表格“發布”到輸出電子表格,但是每次都獲得多個副本,而不是用它代替輸出文件。 任何人都可以建議一種替換目標電子表格內容的方法,以便我可以為輸出保留相同的文件ID並手動觸發“發布”。 嘗試過copyTo
,但是只能制作多張紙。
主電子表格是一個工作人員名冊,需要多個管理人員才能處理,而沒有工作人員看到實時版本。 經理完成更新后,可以將其推送給員工。
編輯:得到它的工作
function publishRoster() {
var source = SpreadsheetApp.getActiveSpreadsheet();
var sheet = source.getActiveSheet();
var updatedDateTime = sheet.getRange("A1");
var now = Utilities.formatDate(new Date(), "GMT+10:30", "dd/MM/yyyy H:mm")
updatedDateTime.setValue("Last Published " + now);
var sourceName = source.getSheetName();
// var sValues = source.getDataRange().getValues();
var destination = SpreadsheetApp.openById('my-destination-sheet-id-here');
var destinationSheet = destination.getSheetByName(sourceName);
if (destinationSheet == null ) { }
else { destination.deleteSheet(destinationSheet); }
sheet.copyTo(destination).setName(sourceName);
}
copyTo()
在目標電子表格中創建現有工作表的副本。 如果要發布從特定工作表到指定目標工作表的更改,則可以將數據從源工作表復制到目標工作表,而不是復制整個工作表。[當然,每次復制都會創建新工作表]
因此,將數據從主表復制/發布到從表的代碼如下:
var SOURCEID = 'xxxxxxxxxxxxx'; //put your source spreadsheet id here
var SOURCESHEETNAME = 'XXXXX'; //put your source sheet name here
var DESTINATIONID = 'xxxxxxxxxxxxx'; //put your destination spreadsheet id here
var DESTINATIONSHEETNAME = 'XXXXX'; //put your destination sheet name here
var data = SpreadsheetApp.openById(SOURCEID).getSheetByName(SOURCESHEETNAME).getDataRange().getValues();
SpreadsheetApp.openById(DESTINATIONID).getSheetByName(DESTINATIONSHEETNAME).clear(); //This line is to clear the existing data in destination.
SpreadsheetApp.openById(DESTINATIONID).getSheetByName(DESTINATIONSHEETNAME).getRange(1, 1, data.length; data[0].length).setValues(data);
//data.length = no. of rows in source
//data[0].length = no. of columns in source
var now = Utilities.formatDate(new Date(), "GMT+10:30", "dd/MM/yyyy H:mm");
SpreadsheetApp.openById(DESTINATIONID).getSheetByName(DESTINATIONSHEETNAME).getRange("A1").setValue("Last Published " + now);
這不是經過測試的代碼,請讓我知道是否出現任何問題,我們將竭誠為您服務。 謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.