簡體   English   中英

Google UI Apps腳本:將電子表格轉換為PDF時空白的PDF

[英]Google UI Apps Script: Blank PDF when converting spreadsheet to PDF

我正在測試一段代碼,以嘗試學習如何使用Google UI Apps Script將電子表格轉換為pdf。 該代碼創建並寫入電子表格,但pdf附件為空白。 將不勝感激,以使它工作。 謝謝。

var newSpreadsheet = SpreadsheetApp.create("My Test Sheet");
var columnNames = ["First Name", "Last Name", "Department"];
newSpreadsheet.getSheetByName('Sheet1').activate();

var headersRange = newSpreadsheet.getActiveSheet().getRange(1, 1, 1, columnNames.length);
headersRange.setValues([columnNames]);

var pdf = DocsList.getFileById(newSpreadsheet.getId()).getAs('application/pdf').getBytes();
var attach = {fileName:'My Test PDF.pdf',content:pdf, mimeType:'application/pdf'};

// Send email 
MailApp.sendEmail("myemail@email.com", "subject", "message", {attachments:[attach]});

您不應再使用DocList。 請改用DriveApp。 下面的解決方案對您的代碼進行了一些修改:

function toPdf(id){
 SpreadsheetApp.flush();
// var ssDoc = DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId());
  var ssDoc = DriveApp.getFileById(id);
 var pdf = DriveApp.createFile(ssDoc.getAs(MimeType.PDF));
  return pdf.getBlob().getBytes();
}


function user2943227(){
  var newSpreadsheet = SpreadsheetApp.create("My Test Sheet");
  var columnNames = ["First Name", "Last Name", "Department"];
//  newSpreadsheet.getSheetByName('Sheet1').activate();

  var headersRange = newSpreadsheet.getActiveSheet().getRange(1, 1, 1, columnNames.length);
  headersRange.setValues([columnNames]);

//  var pdf = DocsList.getFileById(newSpreadsheet.getId()).getAs('application/pdf').getBytes();
  var pdf = toPdf(newSpreadsheet.getId());
  var attach = {fileName:'My Test PDF.pdf',content:pdf, mimeType:'application/pdf'};

  // Send email 
  MailApp.sendEmail("myemail@email.com", "subject", "message", {attachments:[attach]});

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM