尝试为Google工作表中的每一行创建多个PDF
我正在尝试使用谷歌文档作为模板,为谷歌工作表中的每一行创建一个单独的PDF。当我使用活动行时,我可以让它工作;但是,当我尝试循环createpdf函数时,唯一剩下的PDF是最后一行。我的想法是,我会事先删除所有文件,但我不知道错误在哪里。任何帮助都会很棒尝试为Google工作表中的每一行创建多个PDF,pdf,google-apps-script,google-sheets,Pdf,Google Apps Script,Google Sheets,我正在尝试使用谷歌文档作为模板,为谷歌工作表中的每一行创建一个单独的PDF。当我使用活动行时,我可以让它工作;但是,当我尝试循环createpdf函数时,唯一剩下的PDF是最后一行。我的想法是,我会事先删除所有文件,但我不知道错误在哪里。任何帮助都会很棒 var TEMPLATE_ID = '1Mxrm0kny8R7ROlBou8kSUc8dOvvH8PvtQ-EC_Nd3FUQ'; function onOpen() { SpreadsheetApp .getUi() .crea
var TEMPLATE_ID = '1Mxrm0kny8R7ROlBou8kSUc8dOvvH8PvtQ-EC_Nd3FUQ';
function onOpen() {
SpreadsheetApp
.getUi()
.createMenu('Create PDF')
.addItem('Create PDF', 'createPdf')
.addToUi();
}
for (var i=2; i < 3; i++) { function createPdf() {
if (TEMPLATE_ID === '') {
SpreadsheetApp.getUi().alert('TEMPLATE_ID needs to be defined in code.gs');
return;
}
// Set up the docs and the spreadsheet access
var copyFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy(),
copyId = copyFile.getId(),
copyDoc = DocumentApp.openById(copyId),
copyBody = copyDoc.getBody(),
activeSheet = SpreadsheetApp.getActiveSheet(),
numberOfColumns = activeSheet.getLastColumn(),
activeRow = activeSheet.getRange(i, 1, 1, numberOfColumns).getValues(),
headerRow = activeSheet.getRange(1, 1, 1, numberOfColumns).getValues(),
columnIndex = 0,
fileName = activeRow[0][0] + activeRow[0][1],
pdfFile,
pdfFile2;
// Replace the keys with the spreadsheet values
for (;columnIndex < headerRow[0].length; columnIndex++) {
copyBody.replaceText('%' + headerRow[0][columnIndex] + '%',
activeRow[0][columnIndex]);
}
// Create the PDF file and delete the doc copy
copyDoc.saveAndClose();
pdfFile = DriveApp.createFile(copyFile.getAs("application/pdf"));
pdfFile2 = pdfFile.setName(fileName)
copyFile.setTrashed(true);
return pdfFile2;
}}
提示:请注意正确格式化代码,因为它将帮助您理解其结构。以下是您通过后所拥有的内容: 风险值模板ID='1Mxrm0kny8R7ROlBou8kSUc8dOvvH8PvtQ-EC_Nd3FUQ'; 功能开放{ 电子表格应用程序 格蒂先生 .createMenu“创建PDF” .addItem“创建PDF”、“创建PDF” .addToUi; } 对于var i=2;i<3;i++{ 函数createPdf{ 如果模板ID=={ SpreadsheetApp.getUi.alert“模板ID需要在code.gs中定义”; 回来 } //设置文档和电子表格访问权限 var copyFile=DriveApp.getFileByIdTEMPLATE\u ID.makeCopy, copyId=copyFile.getId, copyDoc=DocumentApp.openByIdcopyId, copyBody=copyDoc.getBody, activeSheet=SpreadsheetApp.getActiveSheet, numberOfColumns=activeSheet.getLastColumn, activeRow=activeSheet.getRangei,1,1,numberOfColumns.getValues, headerRow=activeSheet.getRange1,1,1,numberOfColumns.getValues, columnIndex=0, fileName=activeRow[0][0]+activeRow[0][1], Pdfile, pdfFile2; //用电子表格值替换键 对于;columnIndex