在电子表格应用程序本身中,您可以选择仅打印特定工作表。在应用程序中创建 pdf 时,您还可以关闭网格线。创建pdf时有没有办法通过脚本来做到这一点?
问问题
14072 次
7 回答
4
看看这个代码片段:https ://gist.github.com/4169590
它的作用是使用 Google 电子表格内置下载作为 PDF 功能,因此可以进行相同类型的自定义,包括隐藏网格线和指定工作表。使用 GET 参数来获得所需的输出。最后,脚本将 PDF 文件转换为 blob,您可以在自己的脚本中进一步操作。要使其运行,您需要对电子表格提要范围进行额外授权。
希望能帮助到你。
于 2012-11-29T15:05:30.857 回答
3
@rcknr,为我工作,下面有更多选择。(来自:http ://productforums.google.com/forum/#!msg/apps-script/wQvCF6yY1Qk/R0uyVmf-Xx0J )
其他设置
fmcmd=12
size=legal/A4
fzr=true/false
portrait=false/true
fitw=true/false
gid=0/1/2
gridlines=false/true
printtitle=false/true
sheetnames=false/true
pagenum=UNDEFINED
attachment=false/true
有时需要的真/假,我不能使用 0/1 代替。
于 2013-02-17T23:33:59.653 回答
2
用于创建电子表格特定工作表的 pdf 的 Google 应用程序脚本。
function generatePdf() {
var originalSpreadsheet = SpreadsheetApp.getActive();
var sourcesheet = originalSpreadsheet.getSheetByName("Sheet - Name");
var sourcerange = sourcesheet.getRange('A1:G7'); // range to get - here I get all of columns which i want
var sourcevalues = sourcerange.getValues();
var data = sourcesheet.getDataRange().getValues();
var newSpreadsheet = SpreadsheetApp.create("Spreadsheet to export"); // can give any name.
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var projectname = SpreadsheetApp.getActiveSpreadsheet();
var sheet = sourcesheet.copyTo(newSpreadsheet);
var destrange = sheet.getRange('A1:G7');
destrange.setValues(sourcevalues);
newSpreadsheet.getSheetByName('Sheet1').activate();
newSpreadsheet.deleteActiveSheet();
var pdf = DriveApp.getFileById(newSpreadsheet.getId());
var theBlob = pdf.getBlob().getAs('application/pdf').setName("name");
var folderID = "Folder Id"; // Folder id to save in a folder.
var folder = DriveApp.getFolderById(folderID);
var newFile = folder.createFile(theBlob);
DriveApp.getFileById(newSpreadsheet.getId()).setTrashed(true);
}
于 2016-04-21T10:31:54.047 回答
0
当您选择导出为 pdf 时,您会看到一个带有选项的消息框。在此消息框的右侧有五个复选框。检查第二个,然后您将隐藏导出中的网格线。我不知道这个复选框的标签,因为我使用的语言不是英语。
祝你好运!
- 罗伯特
于 2012-09-30T16:32:59.397 回答
0
不幸的是,目前 Apps 脚本无法实现这一点,但您可以在我们的问题跟踪器上提交功能请求。
于 2012-09-26T23:15:25.493 回答
0
我只是隐藏了我不想放在 pdf 中的表格
于 2020-08-20T17:35:05.470 回答
0
这是一个解决方案
var blob = DriveApp.getFileById(idsheet).getAs("application/pdf");
blob.setName("name".pdf");
var dossier = DriveApp.getFolderById("0Bx71KaTqXxQPQUYyVEVyYkJ0bEU");
dossier.createFile(blob);
于 2016-12-14T22:19:39.787 回答