Google apps script 序列化继续时出现意外异常
我写了一个谷歌应用程序电子表格脚本,该脚本应该从我的驱动器中提取一个pdf文件,并将其作为附件发送给许多人,每个人都会收到一个独特的文件。数据在电子表格中。第一列是收件人的电子邮件地址,第二列是必须附加的pdf文件名,第三列是此人的姓名Google apps script 序列化继续时出现意外异常,google-apps-script,Google Apps Script,我写了一个谷歌应用程序电子表格脚本,该脚本应该从我的驱动器中提取一个pdf文件,并将其作为附件发送给许多人,每个人都会收到一个独特的文件。数据在电子表格中。第一列是收件人的电子邮件地址,第二列是必须附加的pdf文件名,第三列是此人的姓名 function sendPDFs() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 2; // First row of data to process var numRows =
function sendPDFs() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = sheet.getDataRange().getLastRow() -1; // Number of rows to process
// Fetch the range of cells A2:C3
var nummails = 0
var numdrive = 0
var checkCol = 4
var dataRange = sheet.getRange(startRow, 1, numRows, 3)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[0]; // First column
var subject = "Some subject";
var body = 'Dear ' + row[2] + '\n\nPlease find your ' + subject + ' \n\nThank you \n\n XYZ'
var attachment = row[1]; // Second column.
var files = DriveApp.getFilesByName(attachment); // Get all files with name.
var blobs = []; // Array for attachment.
// Move files into blobs
while (files.hasNext()) {
var file = files.next();
blobs.push(file.getAs("application/PDF"));
}
// dont sent to invalid email ids or those without email ids
if (emailAddress == "" || emailAddress.indexOf("@") <= -1){
sheet.getRange(i+2, checkCol+1).setValue('Not Emailed')
numdrive = numdrive+1
}
else{
Utilities.sleep(1000)
MailApp.sendEmail(emailAddress, subject, body, {attachments: blobs, name: "XYZ" })
sheet.getRange(i+2, checkCol+1).setValue('Emailed')
nummails = nummails +1
}
}
Browser.msgBox( nummails+ " Mails sent successfully.")
}
函数sendPDFs(){
var sheet=SpreadsheetApp.getActiveSheet();
var startRow=2;//要处理的第一行数据
var numRows=sheet.getDataRange().getLastRow()-1;//要处理的行数
//获取单元格A2:C3的范围
变量nummals=0
var numdrive=0
var checkCol=4
var dataRange=sheet.getRange(startRow,1,numRows,3)
//获取范围中每行的值。
var data=dataRange.getValues();
对于(数据中的i){
var行=数据[i];
var emailAddress=行[0];//第一列
var subject=“某个主体”;
var body='亲爱的'+行[2]+'\n\n请找到您的'+主题+'\n\n谢谢\n\n XYZ'
var attachment=行[1];//第二列。
var files=DriveApp.getFilesByName(附件);//获取名称为的所有文件。
var blobs=[];//附件的数组。
//将文件移动到blob中
while(files.hasNext()){
var file=files.next();
blobs.push(file.getAs(“application/PDF”);
}
//不要发送到无效的电子邮件ID或那些没有电子邮件ID的
如果(emailAddress==“”| | emailAddress.indexOf(“@”)则表明主循环没有达到预期效果:循环中的i值错误。我更改了循环定义,如下所示
for (var i=0 ; i<data.length ; ++i) {
对于(var i=0;i首先,查看脚本编辑器菜单中的“执行记录”。您可以在那里找到错误原因
每次运行脚本时,Google Apps脚本都会记录执行情况
成绩单,是每次调用谷歌应用程序脚本的记录
脚本运行时生成的服务。这些成绩单可以提供帮助
您需要了解脚本执行的操作。要查看
执行记录单击对话框中的查看执行记录
脚本完成运行后的菜单栏
当我达到一些Google应用程序脚本限制(配额)时,我通常会遇到这些错误(例外)。请参见此处的配额:(切换到选项卡配额)。我用上述内容替换了for循环。仍然会遇到相同的错误。嗯……我遇到另一个错误:“很抱歉,当前没有可用的服务器。请稍等,然后重试”当你试图从pdf中获取一些信息时……嘿,你使用的是新的电子表格格式吗?:如果是,至少可以解释我的问题。