Google apps script 从Google表单中的一系列单元格生成PDF并通过电子邮件发送

Google apps script 从Google表单中的一系列单元格生成PDF并通过电子邮件发送,google-apps-script,google-sheets,Google Apps Script,Google Sheets,这是我第一次发布一个问题,我是一个完全的新手,所以如果我没有包括你可能需要的所有信息,我很抱歉 我有一个谷歌工作表,它包含几个数据选项卡,这些数据被手动输入到一个表中。例如: 在每张表格中,有许多表格,其中输入了特定区域内每个“公司”的数据 我试图做的是调整一个脚本,该脚本将转到指定的工作表,获取特定表的一系列单元格,将其转换为PDF格式,并使用同一工作表的另一个选项卡中列出的电子邮件地址发送电子邮件。我已在线搜索并找到以下脚本: 函数emailSpreadsheetAsPDF(){ Doc

这是我第一次发布一个问题,我是一个完全的新手,所以如果我没有包括你可能需要的所有信息,我很抱歉

我有一个谷歌工作表,它包含几个数据选项卡,这些数据被手动输入到一个表中。例如:

在每张表格中,有许多表格,其中输入了特定区域内每个“公司”的数据

我试图做的是调整一个脚本,该脚本将转到指定的工作表,获取特定表的一系列单元格,将其转换为PDF格式,并使用同一工作表的另一个选项卡中列出的电子邮件地址发送电子邮件。我已在线搜索并找到以下脚本:

函数emailSpreadsheetAsPDF(){
DocumentApp.getActiveDocument();
获取文件();
//这是指向我的电子表格的链接,其中包含表单响应和发票模板表
//在此处将链接添加到电子表格
//或者您可以替换“d/”和“/edit”之间链接中的文本
//在我的例子中是文本:17I8-qdce0nug7amrzeytb3iybgcxvuj-xmt8uuuuyvi
const ss=SpreadsheetApp.openByUrl(“sheeturlgoesher/edit”);
//我们将从“发票”表的“B7”单元格中获取电子邮件地址
//更改单元格的引用或图纸的名称(如果不同)
const value=ss.getSheetByName(“电子邮件”).getRange(“A2”).getValue();
const email=value.toString();
//电子邮件的主题
const subject=ss.getSheetByName(“电子邮件”).getRange(“B2”).getValue();
//电子邮件文本。您可以在此处添加HTML代码-参见ctrlq.org/HTML-mail
const body=“通过从谷歌表单生成发票并打印/发送电子邮件发送”;
//同样,URL指向您的电子表格,但现在末尾带有“/export”
//将其更改为电子表格的链接,但保留“/导出”
const url='sheeturlgoesher/export?';
常量导出选项=
'exportFormat=pdf&format=pdf'+//导出为pdf
'&size=letter'+//纸张大小的信函/您可以使用A4或合法纸张
“&scape=true”+//方向门户,对横向使用false
“&fitw=true”+//fit to page width false,以获取实际大小
'&sheetnames=false&printtitle=false'+//隐藏可选的页眉和页脚
“&pagenumbers=false&gridlines=false”+//隐藏页码和网格线
'&fzr=false'+//不要在每页上重复行标题(冻结行)
“&gid=879200050”//工作表的Id。将其更改为您的工作表Id。
“&if=false”+
“&ic=false”+
“&r1=51”+
“&c1=0”+
“&r2=102”+
“&c2=20”;
//可以在链接栏中找到图纸ID。
//选择要打印的图纸并选中链接,
//工作表的gid编号位于链接的末尾。
var params={method:“GET”,头:{“authorization”:“Bearer”+ScriptApp.getOAuthToken()};
//生成PDF文件
var response=UrlFetchApp.fetch(url+exportOptions,params).getBlob();
//将PDF文件作为附件发送
GmailApp.sendmail(电子邮件、主题、正文、{
htmlBody:body,
附件:[{
文件名:ss.getSheetByName(“电子邮件”).getRange(“B2”).getValue()+“.pdf”,
内容:response.getBytes(),
mimeType:“应用程序/pdf”
}]
});
//将PDF保存到驱动器。PDF的名称将是公司名称(单元格B5)
const nameFile=ss.getSheetByName(“01_Allegany_R3”).getRange(“A52”).getValue().toString()+“.pdf”
DriveApp.createFile(response.setName(nameFile));

}
您需要将
gid
参数置于导出选项的末尾

  const exportOptions =
    'exportFormat=pdf&format=pdf' + // export as pdf
    '&size=letter' + // paper size letter / You can use A4 or legal
    '&landscape=true' + // orientation portal, use false for landscape
    '&fitw=true' + // fit to page width false, to get the actual size
    '&sheetnames=false&printtitle=false' + // hide optional headers and footers
    '&pagenumbers=false&gridlines=false' + // hide page numbers and gridlines
    '&fzr=false' + // do not repeat row headers (frozen rows) on each page
    '&if=false' +
    '&ic=false' +
    '&r1=51' +
    '&c1=0' +
    '&r2=102' +
    '&c2=20'+
    '&gid=879200050'; // the sheet's Id. Change it to your sheet ID.

另外请注意,
url
应该是这样的
const-url=https://docs.google.com/SHEETID/export?';而非
常量urlO=https://docs.google.com/spreadsheets/d/SHEETID/edit#gid=0/export?';