在电子表格应用程序本身中,您可以选择仅打印特定工作表。您还可以在应用程序中创建pdf时关闭网格线。有没有办法在创建pdf时通过脚本执行此操作?
答案 0 :(得分:4)
请看一下这段代码:https://gist.github.com/4169590
它的功能是使用Google Spreadsheet内置下载作为PDF功能,因此可以进行相同类型的自定义,包括隐藏网格线和指定工作表。使用GET参数进行播放以获得理想的输出。最后,脚本将PDF文件转换为blob,您可以在自己的脚本中进一步操作。为了实现这一目标,您需要对电子表格订阅源范围进行额外授权。
希望它有所帮助。
答案 1 :(得分: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。
答案 2 :(得分:2)
Google apps脚本,用于创建电子表格特定表格的pdf。
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);
}
答案 3 :(得分:0)
不幸的是,目前无法使用Apps脚本,但您可以在issue tracker上提交功能请求。
答案 4 :(得分:0)
当您选择导出为pdf时,您会看到一个带有选项的消息框。在此消息框的右侧有五个复选框。检查第二个,然后您将隐藏导出中的网格线。我不知道这个复选框的标签,因为我使用的是另一种语言而不是英文。
祝你好运!- 罗伯特
答案 5 :(得分:0)
这是一个解决方案
var blob = DriveApp.getFileById(idsheet).getAs("application/pdf");
blob.setName("name".pdf");
var dossier = DriveApp.getFolderById("0Bx71KaTqXxQPQUYyVEVyYkJ0bEU");
dossier.createFile(blob);
答案 6 :(得分:0)
我只是隐藏了不想放入pdf的表格