【问题标题】:Export a Google sheet range as pdf using Apps script and store the pdf in drive使用 Apps 脚本将 Google 工作表范围导出为 pdf 并将 pdf 存储在驱动器中
【发布时间】:2020-07-27 21:15:11
【问题描述】:

需要一些帮助,希望你能帮助我:)

我有一个 google 电子表格文档,需要对每个脚本执行一些操作: 工作表:“工作表 1” 范围:“A1:J39”

  1. 使用设置打印出来(横向、完美宽度)

  2. 在共享的 google 驱动器的文件夹中保存为 PDF 文档(与 no 1 相同的设置)

  3. 通过邮件将 PDF 文件发送到另一张表中列出的地址

希望你能帮我解决这个问题......

谢谢

【问题讨论】:

  • 您可能会发现this answer 很有用。
  • 你能分享一下你到目前为止所尝试的吗? @Freeces

标签: google-apps-script google-sheets google-drive-api export-to-pdf


【解决方案1】:

我给出了下面的代码,我用它来以 PDF 格式发送完整的工作表。 您可以将其稍微修改为

1.隐藏不需要的行和列 2.包括PDF导出选项

function send_sheet(){
  var today=new Date();
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var ltrsht = ss.getSheetByName("Letter");    
  var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();
  for(var i =0;i<sheets.length;i++){
    if(sheets[i].getName()!="Letter"){ sheets[i].hideSheet() }
    }
    var pdf = DriveApp.getFileById(ss.getId());
    var theBlob = pdf.getBlob().getAs('application/pdf').setName(ltrsht.getRange("C16").getValue()+".pdf");
    var folderID = ""; // Folder id to save in a folder
    var folder = DriveApp.getFolderById(folderID);
    var newFile = folder.createFile(theBlob);
    var body = 'Dear ' + ltrsht.getRange("C16").getValue() +',\n\nPL. find your ' + ltrsht.getRange("C11").getValue() +' enclosed.\n\nHRD Megawin Switchgear';
    GmailApp.sendEmail(ltrsht.getRange("E17").getValue(), ltrsht.getRange("C11").getValue() + " from Megawin HRD", body, {attachments: [theBlob]});
    var empsht = ss.getSheetByName("Emp");  
    empsht.showSheet();
    ltrsht.hideSheet();

}



首先,您必须隐藏目标工作表以外的所有工作表 隐藏不需要的行和列 转换为 PDF 保存在文件夹中 发送到存储在某个单元格中的电子邮件 ID

见下文如何格式化 PDF

https://support.google.com/docs/thread/3457043?hl=en

【讨论】:

  • 有没有办法在没有谷歌驱动权限的情况下生成该pdf?
猜你喜欢
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
  • 2015-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多