2016-02-02 98 views
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。是否有可能为每张工作表填入一个公司名称?

感谢您的帮助!

回答

0

//试着看看你是否可以编辑它使它适用于你;

function archive() 
    {var sheetNameToWatch = "XXXXX"; 
    var sheetNameToMoveTheRowTo = "YYYYYY"; 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[10]; 
    var range = sheet.getRange("C4:K5"); 
    { 
    var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo); 
    var targetRange = targetSheet.getRange(targetSheet.getLastRow() +1,1); 
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).copyTo(targetRange,{contentsOnly:true});} 
相关问题