这个答案非常具体到这个问题。它包括问题中要求导出的范围的范围“F1:M44”。此外,PDF 文件的名称来自 B2 中的单元格。
可以从您的 Google 表格中导出一个范围,而无需隐藏表格选项卡、行和列,也无需创建临时的新电子表格。
function exportRngToPdf(range,shTabName) {
var blob,exportUrl,name,options,pdfFile,response,sheetTabId,ss,ssID,url_base;
range = range ? range : "F1:M44";//Set the default to whatever you want
shTabName = "Sheet1";//Replace the name with the sheet tab name for your situation
ss = SpreadsheetApp.getActiveSpreadsheet();//This assumes that the Apps Script project is bound to a G-Sheet
ssID = ss.getId();
sh = ss.getSheetByName(shTabName);
sheetTabId = sh.getSheetId();
url_base = ss.getUrl().replace(/edit$/,'');
name = sh.getRange("B2").getValue();
name = name + "invoice"
//Logger.log('url_base: ' + url_base)
exportUrl = url_base + 'export?exportFormat=pdf&format=pdf' +
'&gid=' + sheetTabId + '&id=' + ssID +
'&range=' + range +
//'&range=NamedRange +
'&size=A4' + // paper size
'&portrait=true' + // orientation, false for landscape
'&fitw=true' + // fit to width, false for actual size
'&sheetnames=true&printtitle=false&pagenumbers=true' + //hide optional headers and footers
'&gridlines=false' + // hide gridlines
'&fzr=false'; // do not repeat row headers (frozen rows) on each page
//Logger.log('exportUrl: ' + exportUrl)
options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
}
}
options.muteHttpExceptions = true;//Make sure this is always set
response = UrlFetchApp.fetch(exportUrl, options);
//Logger.log(response.getResponseCode())
if (response.getResponseCode() !== 200) {
console.log("Error exporting Sheet to PDF! Response Code: " + response.getResponseCode());
return;
}
blob = response.getBlob();
blob.setName(name + '.pdf')
pdfFile = DriveApp.createFile(blob);//Create the PDF file
//Logger.log('pdfFile ID: ' +pdfFile.getId())
}
已使用多种策略将 Google 表格的一部分导出为 PDF。
- 创建一个仅包含所需内容的新电子表格文件
- 创建一个新的工作表选项卡,将内容放在工作表选项卡中并隐藏任何
其他工作表标签,隐藏不需要的行和列
- 使用范围设置构建下载 URL
- 使用范围地址
- 使用命名范围 - &gid=sheetId&range=NamedRange
- 将内容导出到 Google 文档并从 Google 文档创建 PDF
- 将 G-Sheet 内容与模板文件合并,并从
模板文件。
- 从工作表中获取一系列内容,将其转换为 HTML 并使用
用于创建 PDF 文件的 HTML
我会使用构建下载 URL 的方法,下载 URL 中包含的范围。