【发布时间】:2021-10-06 02:51:43
【问题描述】:
我在 google app 脚本中有这个现有代码,它命令我的工作将其转换为 pdf 文件并将转到其文件夹。
例子:
我正在制作发票,它会自动转换为 PDF,所有 PDF 文件都会转到另一个名为“发票”的文件夹中,客户的所有发票都会在那里收集。
但是,我需要将这些 pdf 文件分开并创建以客户命名的文件夹。这意味着,在文件夹 invoices 内,我需要有另一个以客户名称命名的文件夹,并且在客户的文件夹内,他们的所有发票都将聚集在那里。
但是,我无法获得正确的代码。我现在应该在代码中添加哪些可能的代码?
function makePDF() {
// Get the currently active spreadsheet URL (link)
var ss = SpreadsheetApp.getActiveSpreadsheet();
var token = ScriptApp.getOAuthToken();
var sheet = ss.getSheetByName("Paycheck");
//Creating an exportable URL
var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());
var folderID = "1y2_Rw_4l4SZ1i7SaMJLW3953FI9YRTAs"; // Folder id to save in a folder.
var folder = DriveApp.getFolderById(folderID);
var employeeName = ss.getRange("'Paycheck'!C4").getValue()
var pdfName = employeeName + " - " + Utilities.formatDate(new Date(), "GMT+8", "yyyy-MM-dd");
/* Specify PDF export parameters
From: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
*/
var url_ext = 'exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
+ '&size=letter' // paper size legal / letter / A4
+ '&portrait=true' // orientation, false for landscape
+ '&fitw=true&source=labnol' // fit to page width, false for actual size
+ '&sheetnames=false&printtitle=false' // hide optional headers and footers
+ '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines
+ '&fzr=false' // do not repeat row headers (frozen rows) on each page
+ '&gid='; // the sheet's Id
// Convert individual worksheet to PDF
var response = UrlFetchApp.fetch(url + url_ext + sheet.getSheetId(), {
headers: {
'Authorization': 'Bearer ' + token
}
});
//convert the response to a blob
var blobs = response.getBlob().setName(pdfName + '.pdf');
//saves the file to the specified folder of Google Drive
var newFile = folder.createFile(blobs);
// Define the scope
Logger.log("Storage Space used: " + DriveApp.getStorageUsed());
}
【问题讨论】:
标签: function google-apps-script google-sheets