【问题标题】:Convert Google Sheet to CSV then attach it to an email将 Google 表格转换为 CSV,然后将其附加到电子邮件中
【发布时间】:2022-12-07 09:12:19
【问题描述】:

我有一个简单的 Apps 脚本需求,但无法从社区中找到足够的示例。 我需要将 2 张 Google 电子表格中的表格分别转换为 CSV 文件,然后将它们附加到电子邮件中。 到目前为止,我找到了一个将工作表转换为 CSV 格式并将其归档到文件夹中的脚本。 我寻找了一个要添加的脚本,它将 CSV 文件附加到电子邮件中,但根据我对 Apps 脚本知识的新手水平,找不到任何我可以使用的东西。 任何帮助将不胜感激。非常感谢。

脚本:

function sheet1ToCsv()
{
    var ssID = SpreadsheetApp.getActiveSpreadsheet().getId();
    var sheet_Name = "xxxx"

    var requestData = {"method": "GET", "headers":{"Authorization":"Bearer "+ScriptApp.getOAuthToken()}};

    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet_Name)
    var sheetNameId = sheet.getSheetId().toString();

    params= ssID+"/export?gid="+sheetNameId +"&format=csv"
    var url = "https://docs.google.com/spreadsheets/d/"+ params
    var result = UrlFetchApp.fetch(url, requestData);  

    var folderId = "yyyy";
    var csvContent = {
    title: sheet_Name+".csv",
    mimeType: "application/vnd.csv",  
    parents: [{id: folderId}]
     }
    var fileJson = Drive.Files.insert(csvContent,result)

} 

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    在您的展示脚本中,不会发送电子邮件。而且,只有一个 CSV 文件被创建到 Google Drive。来自I need to convert 2 sheets from a Google Spreadsheet, individually, as CSV files then attach them in an email.和你的展示脚本,当你的展示脚本修改后,下面的修改怎么样?

    修改脚本:

    function myFunction() {
      var emailAddress = "###"; // Please set your email address.
      var sheetNames = ["Sheet1", "Sheet2"]; // Please set your 2 sheet names you want to use.
    
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var ssID = ss.getId();
      var requestData = { "method": "GET", "headers": { "Authorization": "Bearer " + ScriptApp.getOAuthToken() } };
      var blobs = sheetNames.map(s => {
        var params = ssID + "/export?gid=" + ss.getSheetByName(s).getSheetId() + "&format=csv";
        var url = "https://docs.google.com/spreadsheets/d/" + params;
        return UrlFetchApp.fetch(url, requestData).getBlob();
      });
      MailApp.sendEmail({ to: emailAddress, subject: "sample subject", body: "sample body", attachments: blobs });
    }
    
    • 运行此脚本时,会发送一封包含 2 个 CSV 文件作为附件的电子邮件。

    参考:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多