0
使用Google應用程序腳本我試圖用一張紙上的數據自動填充多張紙張。自動使用一張紙上的數據填充多張相同紙張
我使用兩個Spreadsheets,「主」電子表格包含需要自動填充到其他電子表格中的數據。
另一個電子表格包含根據「主」表中的條目數重複多次的模板表,這是數據需要去的地方。
到目前爲止,我已經設法複製了基於主控的模板表的數量並在之後刪除它們(請參閱代碼),但我無法找到有關如何自動填充這些表單的任何信息。該模板根據列中公司的數量進行復制,模板表以這些公司的名稱命名。
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [{name: "Produce Conformance Logs (From Current Sheet)", functionName: "Produce"},
{name: "Delete Old Conformance Logs", functionName: "delSheets"}
];
ss.addMenu("Conformance Logs", menuEntries);
}
function Produce() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
var ui = SpreadsheetApp.getUi();
var eRange = sh.getRange("R9:R").getValues()
var eLength = eRange.filter(String).length;
var rData = sh.getRange(9, 18,eLength, 1).getValues(); // This is the data with the company names
var conformanceSSheet = SpreadsheetApp.openById("1eMQv7muCHzKiyFxIlsdfgsdfgNpxovHiEINNZNtPUlEElIFs5ws");
var conformanceTemplate = conformanceSSheet.getSheetByName("Template");
var result = ui.alert( //title, prompt, buttons)
'Please confirm','Are you sure you want to produce Conformance Logs ?', ui.ButtonSet.YES_NO);
if(result == ui.Button.YES){
for (i=rData.length-1;i>0;--i)
conformanceTemplate.copyTo(conformanceSSheet).setName(rData[i]);
}
}
自動填充代碼去這裏
function delSheets() {
var ss = SpreadsheetApp.openById("1eMQv7muCHzKiyFxIlNpxovHiEsdfgsdgINNZNtPUlEElIFs5ws");
var sheetsCount = ss.getNumSheets();
var sheets = ss.getSheets();
var ui = SpreadsheetApp.getUi();
var deleteSheetsContaining = "Template"
for (var i = 0; i < sheetsCount; i++){
var sheet = sheets[i];
var sheetName = sheet.getName();
Logger.log(sheetName);
if (sheetName.indexOf(deleteSheetsContaining.toString()) === -1){
Logger.log("DELETE!");
ss.deleteSheet(sheet);
}
}
}
例如,在所有被複制的表我試圖要填充的我剛纔在RDATA變量所標識的公司名稱的小區F7。是否有可能爲每張工作表填入一個公司名稱?
感謝您的幫助!