【问题标题】:App Script: How to view PDF of Google Sheet after function to save to Google Drive?应用程序脚本:如何在保存到 Google Drive 的功能后查看 Google Sheet 的 PDF?
【发布时间】:2018-02-14 21:16:22
【问题描述】:

需要用户通过以下功能查看他们刚刚保存到 Google Drive 的 Google Sheet 的 PDF 版本。如何在此代码中添加查看 PDF 功能?在线建议并不完全奏效。

function checkSheet() {
  var sheetName = "POTemplate";
  var folderID = "Eric";
  var sourceSpreadsheet = SpreadsheetApp.getActive();
  var sourceSheet = sourceSpreadsheet.getSheetByName(sheetName);
  var poNo = sourceSheet.getRange("b2").getValue();
  var pdfName = "Sample PO Hi Eric - Happy Valentine's" + poNo;
  var folder = DriveApp.getFoldersByName(folderID);
  var destSpreadsheet = SpreadsheetApp.open(DriveApp.getFileById(sourceSpreadsheet.getId()).makeCopy(folder));
  var sheets = destSpreadsheet.getSheets();
  for (i = 0; i < sheets.length; i++) {
   if (sheets[i].getSheetName() != sheetName){
     destSpreadsheet.deleteSheet(sheets[i])}};                                                                                               
  var theBlob = 
destSpreadsheet.getBlob().getAs('application/pdf').setName(pdfName);
  var newFile = folder.next().createFile(theBlob);
  DriveApp.getFileById(destSpreadsheet.getId()).setTrashed(true);
}

【问题讨论】:

  • Drive API 具有以下功能,例如Open FilesDownload Files,我认为您可以使用它们,但是,正如SO post 所暗示的那样,您无法在不下载文件的情况下查看文件。希望这会有所帮助。

标签: google-apps-script


【解决方案1】:

要添加查看功能,您可以使用file.getUrl() 获取指向新文件的链接,并在对话框中向用户显示链接

  var strUrl = newFile.getUrl()
  var html = HtmlService.createTemplateFromFile("NewTab")
  html.strUrl = strUrl
  SpreadsheetApp.getUi().showModelessDialog(html.evaluate(), "Pdf Link")

你的 HTML 文件 NewTab 会这样编码

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <a href ="<?!= strUrl ?>"> Link </a> to your PDF File
  </body>
  <script>
    var evLink = document.getElementsByTagName('a')[0]
    //evLink.click();  //If you try to programmatically activate link,
    // pop-up blocker stops the link from opening.
   </script>
</html>

参考:
file.getUrl()
Dialog box
SO query on opening new tab/link

【讨论】:

  • 谢谢,杰克!只是一个简单的问题......是否可以在通过脚本保存到 Google Drive 之前查看 Google 表格(PDF 格式)?如果是的话,我会单独发布一个问题。
  • 是的,可以做到。另外,如果这回答了您的问题,请考虑接受here 中提到的答案
猜你喜欢
  • 2021-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 2021-04-30
  • 1970-01-01
相关资源
最近更新 更多