如何用Google Apps Script将指定工作表导出为PDF至指定云端文件夹
解决指定工作表导出PDF的问题
你当前代码里的ss.getBlob()会获取整个工作簿的内容,所以导出的是所有工作表的PDF。要单独导出名为Tracking的工作表,需要通过构造Google Sheets的导出URL来生成仅包含目标工作表的PDF文件,修改后的代码如下:
function checkSheet() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("Tracking"); const fldr = DriveApp.getFolderById("folder id"); if(sh.getRange("C6").getValue() === "Yes") { // 获取目标工作表的唯一ID const sheetId = sh.getSheetId(); // 获取当前电子表格的ID const ssId = ss.getId(); // 构造仅导出指定工作表的PDF导出链接 const pdfExportUrl = `https://docs.google.com/spreadsheets/d/${ssId}/export?exportFormat=pdf&gid=${sheetId}`; // 携带用户权限请求PDF内容 const fetchOptions = { headers: { 'Authorization': `Bearer ${ScriptApp.getOAuthToken()}` } }; const pdfResponse = UrlFetchApp.fetch(pdfExportUrl, fetchOptions); const pdfBlob = pdfResponse.getBlob().setName("mypdf.pdf"); // 将PDF保存到指定Drive文件夹 fldr.createFile(pdfBlob); } }
关键说明
- 导出URL中的
gid=${sheetId}是核心参数,用于指定要导出的单个工作表,去掉这个参数就会导出整个工作簿 ScriptApp.getOAuthToken()用于获取当前用户的授权令牌,确保能访问并导出目标电子表格的内容- 最后将获取到的PDF Blob重命名后保存到指定文件夹即可
内容的提问来源于stack exchange,提问作者Shan Jose
相关产品推荐
相关产品推荐

