如何解决将工作表附加到另一个工作表中提到的mailid
- 我有一个包含多个工作表的电子表格,并且我还有另一个工作表的A列包含邮件ID B列包含工作表名称。
- 每当有工作表出现时,我都会用相关的邮件ID来检查工作表必须粘贴的位置
- 例如对于工作表名称10001515ADC,我必须将工作表附加到邮件ID guru3291@gmail.com并将其邮寄。 同样,对于10003810ADC,邮件ID为kumaraguru@aai.aero
我研究的代码
function email(){
var heet= SpreadsheetApp.openById('1mbFTGxhvSbbttfkaezJpfU1TXNtJUPBvujREPi3yVwo');
var mid = heet.getSheetByName('Sheet1');
var getNames = mid.getDataRange().getValues();
getNames.shift();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var sheetsObj = {};
for (var i = 1; i < sheets.length; i++) {
sheetsObj[sheets[i].getSheetName()] = sheets[i];
}
Logger.log(sheetsObj);
for (var i = 0; i < getNames.length; i++) {
var r = getNames[i];
if (r[1] in sheetsObj) {
var ssID = ss.getId();
Logger.log(ssID);
var c =r[1];
var p =ss.getSheetByName(c);
p.activate;
Logger.log(p);
var sheetgId = ss.getActiveSheet().getSheetId();
Logger.log(sheetgId);
var sheetName = ss.getName();
Logger.log(sheetName);
}
var token = ScriptApp.getOAuthToken();
var email = r[0];
var subject = "Important Info!";
var body = "Latest Recency Report \n\nRegards,\n VOTV-ATM-OPS";
var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export?" + "format=xlsx" +
"&gid="+sheetgId+ "&portrait=true" + "&exportFormat=pdf";
var result = UrlFetchApp.fetch(url,{
headers: { 'Authorization': 'Bearer ' + token}
});
var contents = result.getContent();
MailApp.sendEmail(email,subject,body,{attachments:[{fileName:sheetName+".pdf",content:contents,mimeType:"application//pdf"}]});
}
}
解决方法
您的脚本发送的工作表错误,因为您的activate
请求未通过
这是由于您在不调用方法activate的情况下
- 要调用方法,您需要引用它,包括
()
括号 - 因此,将
p.activate;
修改为p.activate();
另请参阅Fucniton invoacation in Javascript。
旁注
您无需激活工作表即可使用它。
线条
var p =ss.getSheetByName(c);
p.activate();
var sheetgId = ss.getActiveSheet().getSheetId();
可以替换为
var p =ss.getSheetByName(c);
var sheetgId = p.getSheetId();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。