繁体   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