Google脚本存表格为PDF:日期与求和异常问题求助
问题排查思路
问题1:PDF文件名日期固定,邮件标题日期正常
- 检查脚本时间驱动触发器的时区设置:如果用了定时触发器,确认触发器时区和脚本中
toLocaleDateString指定的en-AU时区是否一致。手动运行脚本测试文件名是否正常——如果手动运行正常,基本可以确定是触发器时区不匹配导致的计算偏差。 - 排查变量作用域与篡改:确认
reportDate变量是否在脚本其他位置被重新赋值,比如是否存在全局变量冲突,或是其他函数修改了该变量的值。 - 调整Drive文件命名逻辑:当前代码是先创建Blob再重命名,尝试改为先创建空白文件并设置文件名,再写入Blob,避免Drive缓存旧文件名。示例代码:
var newFile = folder.createFile(fileName); newFile.setContent(Blob.getBytes()); - 清除Drive缓存:手动删除Drive中旧的3月23日PDF文件,重新运行脚本验证结果。
问题2:PDF中跨工作表列求和不完整
- 导出前强制刷新公式:在获取Blob前添加
SpreadsheetApp.flush();,强制Google表格刷新所有公式计算(尤其是跨工作表引用的D、E列公式),避免导出时使用缓存的旧计算结果。 - 检查PDF导出范围:确认
Report.getParent()是否指向正确的表格/工作表范围。如果仅需导出特定工作表,直接使用Report.getBlob()而非getParent(),避免导出整个表格时包含未计算或不符合要求的区域。 - 验证跨工作表引用权限:如果D、E列使用了
IMPORTRANGE或其他跨文件引用,确认脚本运行的账号对目标工作表有编辑权限,权限不足会导致公式在导出时无法正常计算。 - 检查工作表可见性与打印设置:确认D、E列未被隐藏,且打印设置的打印区域包含D、E列——PDF导出默认仅包含可见单元格和指定打印区域。
内容的提问来源于stack exchange,提问作者Yulia
相关产品推荐
相关产品推荐

