GScript将同一文档中的多张图纸转换为单独的PDF,并将每个PDF发送到每张图纸的单元格B2中包含的电子邮件地址中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GScript将同一文档中的多张图纸转换为单独的PDF,并将每个PDF发送到每张图纸的单元格B2中包含的电子邮件地址中相关的知识,希望对你有一定的参考价值。
我正在寻找一个脚本,将每个工作表合并到一个文件中,将每个工作表转换为PDF,然后将该PDF发送给该工作表中列出的收件人。
- 每个收件人在工作簿中都有一个工作表,标题后面是工作表。
- 每张纸在每张纸的B2中包含预期收件人的电子邮件。
我浏览了许多其他脚本,并尝试将其拼凑起来,但没有运气。
答案
我认为这可能对您有帮助
function myFunction(){
var ss = SpreadsheetApp.openById("YOUR_SPREADSHEET_ID");
var sheets = ss.getSheets();
var B2Values = [];
sheets.forEach(function(elt,index){
//Get all your email adresses
B2Values.push(sheets[index].getRange(2,2).getValue());
});
//For each sheet in your Spreadsheet, it create a temporary Spreadsheet
//who got only one sheet, with your sheet values,
// transform it as pdf, send the pdf by email to your B2 email adress and delete
//the temporary Spreadsheet
sheets.forEach(function(elt, index){
var temporarySS = SpreadsheetApp.create("NAME_OF_THE_FILE_WHO_WILL_BE_SENT");
var temporaryId = temporarySS.getId();
var dataToMove = sheets[index].getRange(1,1,sheets[index].getLastRow(),sheets[index].getLastColumn()).getValues();
var openingTemporarySS = SpreadsheetApp.openById(temporaryId);
dataToMove.forEach(function(elt){
openingTemporarySS.appendRow(elt);
})
MailApp.sendEmail({
to: B2Values[index],
subject: "YOUR_SUBJECT",
attachments: [openingTemporarySS.getAs('application/pdf')]
})
DriveApp.getFileById(temporaryId).setTrashed(true);
});
}
这是另一个版本,我想如果您有很多工作表,则应该使用该工作表:
function myFunction(){
var ss = SpreadsheetApp.openById("YOUR_SPREADSHEET_ID");
var sheets = ss.getSheets();
var B2Values = [];
sheets.forEach(function(elt,index){
//Get all your email adresses
B2Values.push(sheets[index].getRange(2,2).getValue());
});
var temporarySS = SpreadsheetApp.create("NAME_OF_THE_FILE_WHO_WILL_BE_SENT");
var temporaryId = temporarySS.getId();
var openingTemporarySS = SpreadsheetApp.openById(temporaryId);
sheets.forEach(function(elt, index){
var dataToMove = sheets[index].getRange(1,1,sheets[index].getLastRow(),sheets[index].getLastColumn()).getValues();
dataToMove.forEach(function(elt){
openingTemporarySS.appendRow(elt);
})
MailApp.sendEmail({
to: B2Values[index],
subject: "YOUR_SUBJECT",
attachments: [openingTemporarySS.getAs('application/pdf')]
})
openingTemporarySS.deleteRows(1,openingTemporarySS.getLastRow());
});
DriveApp.getFileById(temporaryId).setTrashed(true);
}
以上是关于GScript将同一文档中的多张图纸转换为单独的PDF,并将每个PDF发送到每张图纸的单元格B2中包含的电子邮件地址中的主要内容,如果未能解决你的问题,请参考以下文章