GScript将同一文档中的多张图纸转换为单独的PDF,并将每个PDF发送到每张图纸的单元格B2中包含的电子邮件地址中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GScript将同一文档中的多张图纸转换为单独的PDF,并将每个PDF发送到每张图纸的单元格B2中包含的电子邮件地址中相关的知识,希望对你有一定的参考价值。

我正在寻找一个脚本,将每个工作表合并到一个文件中,将每个工作表转换为PDF,然后将该PDF发送给该工作表中列出的收件人。

  1. 每个收件人在工作簿中都有一个工作表,标题后面是工作表。
  2. 每张纸在每张纸的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中包含的电子邮件地址中的主要内容,如果未能解决你的问题,请参考以下文章

将多张CAD图纸如何同时转换成jpg格式?

怎么将多张CAD图纸文件共同转换成PDF格式文件?

怎么将绘制好的CAD图纸批量转换成SVG格式?

怎么把多张cad打印成一张pdf

CAD图纸文件如何批量转换成PDF格式?

如何将EXCEl中多张Sheet工作表转换成一个PDF