在没有单元格网格线的情况下将Google表格导出为PDF

时间:2018-08-16 08:01:05

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

我正在尝试通过Apps脚本从Google表格导出PDF。我在网上找到了有用的代码,该代码非常有效,除了找不到没有网格或更改边距和页面大小的方法无法导出它。

function generatePdf() {
  var originalSpreadsheet = SpreadsheetApp.getActive();
  var sourcesheet = originalSpreadsheet.getSheetByName("TestSheet");
  var sourcerange = sourcesheet.getRange('B1:K55');  // range to get - here I get all of columns which i want
  var sourcevalues = sourcerange.getValues();
  var data = sourcesheet.getDataRange().getValues();

  var number =  originalSpreadsheet.getRange('G9:H9').getValue();

  var newSpreadsheet = SpreadsheetApp.create("Invoice pdf"); // can give any name.
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var projectname = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = sourcesheet.copyTo(newSpreadsheet);
  var destrange = sheet.getRange('B1:K55');
  destrange.setValues(sourcevalues);
  newSpreadsheet.getSheetByName('Sheet1').activate();
  newSpreadsheet.deleteActiveSheet();

  var invoiceName = "Invoice "+number;
  var pdf = DriveApp.getFileById(newSpreadsheet.getId());
  var theBlob =     pdf.getBlob().getAs('application/pdf').setName(invoiceName);

  var folderID = "1Y7n1e_tzQWvzVykHJf_DSm9lBVmokDHA"; // Folder id to save in a folder.
  var folder = DriveApp.getFolderById(folderID);
  var newFile = folder.createFile(theBlob);

  DriveApp.getFileById(newSpreadsheet.getId()).setTrashed(true);  
}

我一直在寻找答案,但是我无法将找到的一些解决方案应用于我的代码。

1 个答案:

答案 0 :(得分:0)

我不确定如何使用代码进行操作,但是如果您想在没有代码的情况下进行操作...从 Google 表格下载时,您可以选择删除单元格网格线。路线如下:

  1. 文件 > 下载 > PDF 文档 (.pdf)

  2. 这将打开一个预览屏幕。右侧的侧边栏有一个名为“格式”的下拉菜单。

  3. 在“格式”下,取消选中标有“显示网格线”的框。

就是这样!