我正在嘗試為一個專案開具發票。它的作業方式是一個人將填寫所需的詳細資訊,并且一旦填寫了詳細資訊。他們將編輯一個特定的單元格(可能是一個下拉選單,如“發票已填”和“發票不完整”)。一旦他們點擊填充,它就會將表格作為 PDF 檔案發送到不同的電子郵件。
我很難通過應用程式腳本解決這個問題。
uj5u.com熱心網友回復:
這是一個示例
function createAndSendPDF() {
const docID = '___________'; // ID of spreadsheet
const feuilleID = '0'; // sheetID
const email = '[email protected]';
// const dossier = DriveApp.getFolderById('____________'); // ID of Folder if you want to save a copy of the pdf file
const d = Utilities.formatDate(new Date(), "GMT 1", "yyyyMMdd")
const fichier = 'myFileName' "_" d ".pdf"
const objet = 'Test pdf';
const corps = "Please find ...";
const url = 'https://docs.google.com/spreadsheets/d/' docID '/export?';
const exportOptions =
'exportFormat=pdf&format=pdf'
'&size=A4'
'&portrait=true'
'&fitw=true'
'&sheetnames=false&printtitle=false'
'&pagenumbers=false&gridlines=false'
'&fzr=false'
'&gid=' feuilleID;
var params = {method:"GET",headers:{"authorization":"Bearer " ScriptApp.getOAuthToken()}};
var reponse = UrlFetchApp.fetch(url exportOptions, params).getBlob();
GmailApp.sendEmail(email, objet, corps, {
htmlBody: corps,
attachments: [{
fileName: fichier,
content: reponse.getBytes(),
mimeType: "application/pdf"
}]
});
// dossier.createFile(reponse.setName(fichier));
}
uj5u.com熱心網友回復:
onEdit(e)當復選框值設定為 true 時,您只需添加型別和控制元件的觸發器。
然后您基本上需要發送帶有附件的電子郵件:
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sheet = ss.getSheetByName('Proforma Sheet')
const PDF_MIME = "application/pdf"
const listEmail = ["[email protected]", "[email protected]"]
const sendPDF = (e) => {
const { range: { rowStart, columnStart } } = e
const {value} = e
if (rowStart === 11 && columnStart === 12 && value === "TRUE" ) {
const copy = DriveApp.getFileById(ss.getId()).getAs(PDF_MIME).copyBlob()
listEmail.forEach(email=>{
MailApp.sendEmail(email, "Your Spreadsheet", "See attched", {
attachments: [copy]
})
})
}
}
并為該功能創建一個可安裝的編輯觸發器sendPDF。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/442361.html
