使用Google Apps Script导出工作表为PDF并自定义文件名报错如何解决
解决方案
错误原因
你的代码存在3个核心问题:
ss.getBlob未加执行括号(),传入的是函数本身而非执行后返回的Blob对象- 使用了错误的MIME类型枚举值,
MimeType.exportPDF不是合法值,PDF对应的正确枚举是MimeType.PDF - 调用
createFile时参数匹配错误:三个参数的createFile(name, content, mimeType)重载中,第二个参数要求传入字符串文本,你传入Blob对象会被强制转为纯文本,因此导出格式不符合预期
可行实现方案
方案1:创建文件时直接指定PDF文件名
先修改Blob的名称属性后再传入创建文件,代码如下:
var sqc = ss.getSheetByName('SQC') var folder = DriveApp.getFolderById('FOLDER ID') // 自定义导出的PDF文件名,直接设置Blob的name属性 var pdfBlob = ss.getBlob().setName('自定义的文件名.pdf'); var pdfFile = folder.createFile(pdfBlob);
如果你只需要导出SQC单个工作表而非整个 spreadsheet,可以在获取Blob前添加选中范围的逻辑即可。
方案2:导出文件后重命名
如果已经生成了文件,直接调用文件实例的setName方法即可修改名称:
var sqc = ss.getSheetByName('SQC') var folder = DriveApp.getFolderById('FOLDER ID') var pdfBlob = ss.getBlob(); var pdfFile = folder.createFile(pdfBlob); // 重命名已生成的文件 pdfFile.setName('自定义的文件名.pdf');
内容的提问来源于stack exchange,提问作者wren Jago
相关产品推荐
相关产品推荐

