【发布时间】:2021-09-21 14:11:42
【问题描述】:
我正在处理包含数据库的工作表,并且我复制了一个脚本,每次用户提交任何数据时,它都会在脚本的帮助下从该行生成 pdf。它的工作顺利,但问题是当我运行脚本时,它会从第 1 行再次开始,并再次制作重复的 pdf。所以我对所有人的请求请帮助我,我只希望它应该获取最后一行是新的。不要从第一行开始这里是代码请帮助我。
function billPdf() {
const pdfFolder = DriveApp.getFolderById("17Wyo_wHI1p_zNrEQWnay7pbb_3WS8Sivw");
const tempFolder = DriveApp.getFolderById("1CiEPOh7X82M5jpupYtYqBdnlYIzlSRCjb");
const tempDoc = DriveApp.getFileById("1IZr8ovAMOV1z2ADfXHjKvvHNOzMSW1T4WwC0XPd7_OeQ");
const currentSheet =SpreadsheetApp.getActiveSpreadsheet().getSheetByName("TT");
const data = currentSheet.getRange(2, 1,currentSheet.getLastRow()-1,73).getDisplayValues();
let errors =[];
data.forEach(row => {
try{
createPdf(row[0],row[1],row[2],row[3],row[4],row[5],row[13],row[14],row[15],row[16],row[17],row[23],row[24],row[25],row[26],row[27],row[33],row[34],row[35],row[36],row[37],row[43],row[44],row[45],row[46],row[47],row[49],row[69],row[11],pdfFolder,tempFolder,tempDoc,row[0]);
errors.push["Done"];
} catch(err){
errors.push(["Failed"]);
}
});
currentSheet.getRange(2, 71,currentSheet.getLastRow()-1,1).setValue(errors);
}
function createPdf(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,pdfFolder,tempFolder,tempDoc,pdfname) {
const newtemplateFile = tempDoc.makeCopy(tempFolder);
const openDoc = DocumentApp.openById(newtemplateFile.getId());
const body = openDoc.getBody();
const currentSheet1 =SpreadsheetApp.getActiveSpreadsheet().getSheetByName("TT");
body.replaceText("{invoice}", a);
body.replaceText("{date}", b);
body.replaceText("{type}", c);
body.replaceText("{contact}", d);
body.replaceText("{name}", e);
body.replaceText("{email}", f);
body.replaceText("{p1}", g);
body.replaceText("{p2}", h);
body.replaceText("{p3}", i);
body.replaceText("{p4}", j);
body.replaceText("{p5}", k);
body.replaceText("{q1}", l);
body.replaceText("{q2}", m);
body.replaceText("{q3}", n);
body.replaceText("{q4}", o);
body.replaceText("{q5}", p);
body.replaceText("{mr1}", q);
body.replaceText("{mr2}", r);
body.replaceText("{mr3}", s);
body.replaceText("{mr4}", t);
body.replaceText("{mr5}", u);
body.replaceText("{to1}", v);
body.replaceText("{to2}", w);
body.replaceText("{to3}", x);
body.replaceText("{to4}", y);
body.replaceText("{to5}", z);
body.replaceText("{subt}", aa);
body.replaceText("{add}", ab);
body.replaceText("{foe}", ac);
openDoc.saveAndClose();
const bolbPDF = newtemplateFile.getAs(MimeType.PDF);
const pdfFile = pdfFolder.createFile(bolbPDF).setName(pdfname);
tempFolder.removeFile(newtemplateFile);
return pdfFile;
}
【问题讨论】:
标签: google-apps-script google-sheets