Javascript Mailapp和以正确格式保存附件
我是新来的,正在开发一个简单的功能,1.用新名称保存当前的电子表格,2。通过电子邮件将新命名文件的副本发送到电子邮件地址。我的代码可以正常工作,但我在使用MailApp以google sheets格式保存电子表格时遇到了问题。代码如下:Javascript Mailapp和以正确格式保存附件,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我是新来的,正在开发一个简单的功能,1.用新名称保存当前的电子表格,2。通过电子邮件将新命名文件的副本发送到电子邮件地址。我的代码可以正常工作,但我在使用MailApp以google sheets格式保存电子表格时遇到了问题。代码如下: function emailPayPeriod() { var Sheet=SpreadsheetApp.getActiveSpreadsheet(); var Peter=Sheet.getSheetByName("Peter&qu
function emailPayPeriod() {
var Sheet=SpreadsheetApp.getActiveSpreadsheet();
var Peter=Sheet.getSheetByName("Peter");
var destFolder = DriveApp.getFolderById("424342423432523534");
var date = Utilities.formatDate(new Date(Peter.getRange(2, 2,).getValue()),Sheet.getSpreadsheetTimeZone(),"MMM-dd-yyyy");
var file = DriveApp.getFileById("324kn24k23b4");
//SavespreadsheetAs, Save pay periods on google drive based on pay period start name
DriveApp.getFileById("893y42ei3ubryu2").makeCopy(date,destFolder);
//Send Google Sheets File via Email
MailApp.sendEmail("example@gmail.com",'Pay Period', "date",
{
name: "Title",
attachments: [file]
});
}
当我收到带有附件的电子邮件时,它总是以.PDF格式。另一件事,我试图找出是如何拉文件ID从新创建的文件,并使用它在电子邮件功能,以确保我发送新命名的文件。非常感谢对我错误的任何指点。修改点:
- 在Google文档文件(文档、电子表格、幻灯片等)中,Google文档文件不能直接导出为相同的mimeType。需要通过转换为其他mimeType进行导出。因此,在您的情况下,需要将电子表格作为其他mimeType导出。例如,它们是PDF、XLSX、CSV等等
- 而且,在当前阶段,当Google Docs文件作为电子邮件附件文件与DriveApp.getFileById一起发送时,mimeType会自动转换为PDF。这似乎是当前的规范
- 关于你下面的第二个问题
另一件事,我试图找出是如何拉文件ID从新创建的文件,并使用它在电子邮件功能,以确保我发送新命名的文件
- 在这种情况下,您可以检索复制文件的文件ID,并使用以下脚本将文件ID添加到电子邮件中
const fileId = DriveApp.getFileById("893y42ei3ubryu2").makeCopy(date,destFolder).getId(); MailApp.sendEmail("example@gmail.com", 'Pay Period', "date" + "\n" + fileId, { name: "Title", attachments: [file] });
- 在这种情况下,您可以检索复制文件的文件ID,并使用以下脚本将文件ID添加到电子邮件中
-
- 导出到XLSX数据的端点来自“Files:get”方法
var spreadsheetId = "324kn24k23b4"; // Please set your Spreadsheet ID.
var url = "https://docs.google.com/spreadsheets/export?exportFormat=xlsx&id=" + spreadsheetId;
var file = UrlFetchApp.fetch(url, {headers: {authorization: "Bearer " + ScriptApp.getOAuthToken()}});
var file = DriveApp.getFileById("324kn24k23b4");
//SavespreadsheetAs, Save pay periods on google drive based on pay period start name
DriveApp.getFileById("893y42ei3ubryu2").makeCopy(date,destFolder);
//Send Google Sheets File via Email
MailApp.sendEmail("example@gmail.com",'Pay Period', "date",
{
name: "Title",
attachments: [file]
});
var userEmail = "example@gmail.com";
var file = DriveApp.getFileById("324kn24k23b4");
Drive.Permissions.insert({role: "writer", type: "user", value: userEmail}, file.getId(), {sendNotificationEmails: false});
MailApp.sendEmail(userEmail, 'Pay Period', "date" + "\n" + file.getUrl(), { name: "Title" });
const fileId = DriveApp.getFileById("893y42ei3ubryu2").makeCopy(date,destFolder).getId();
MailApp.sendEmail("example@gmail.com", 'Pay Period', "date" + "\n" + fileId, { name: "Title", attachments: [file] });