作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个脚本,其中在 Google Sheet 中转换为 PDF 并通过电子邮件发送(通过 Gmail API)。对于某些记录,PDF 大小会增加到 10 MB(使用脚本),而手动下载时文件大小实际上为 130 KB。
请找到以下用于将工作表转换为 PDF 的语法
var blob=DriveApp.getFileById(<<Google Sheet ID>>).getAs('application/pdf');
此问题的可能原因是什么以及如何解决?
最佳答案
您的电子表格可能有许多空单元格,它们会按照您的方式转换为 pdf。
我建议您改为以更手动的方式进行转换,使用 UrlfetchApp
- 这允许您指定不同的选项,其中包括您要转换的范围。
以下示例显示了如何为仅包含一个工作表的电子表格仅导出带有内容 ( dataRange
) 的数据:
function myFunction() {
var token = ScriptApp.getOAuthToken();
var ss = SpreadsheetApp.openById("<<Google Sheet ID>>");
var sheet = ss.getActiveSheet();
var name = ss.getName();
var url = "https://docs.google.com/spreadsheets/d/" + "<<Google Sheet ID>>" + "/export?";
var options = 'exportFormat=pdf&format=pdf' // export format
+ '&size=A4' // paper size
+ '&portrait=true' // orientation
var range = sheet.getDataRange().getA1Notation();
var response = UrlFetchApp.fetch(url + options + '&gid=' + sheet.getSheetId() + "&range=" + range,
{
headers: {
'Authorization': 'Bearer ' + token
},
muteHttpExceptions:true
});
var blob = DriveApp.createFile(response.getBlob().setName(name));
}
关于pdf - 在 Apps 脚本中将 Google 表格转换为 PDF 格式时文件大小会增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62595777/
我是一名优秀的程序员,十分优秀!