Сценарий приложения — отправка электронной таблицы во вложении xlsx

#google-apps-script #google-sheets

#google-apps-script #google-sheets

Вопрос:

На данный момент я использую следующий скрипт, но с помощью этого скрипта вся электронная таблица отправляется в виде вложения, и я бы предпочел, чтобы отправлялся только 1 лист «Планирование Waak_Zomervakantie». Возможно ли это? И что мне нужно изменить в скрипте?

 var MASTERSHEET_ID = '###';

function MailPlanning() {
  try {
    var ss = SpreadsheetApp.getActive();
    var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key="   ss.getId()   "amp;exportFormat=xlsx";
    var sheet = ss.getSheetByName('Planning Waak_Zomervakantie');
    var range = sheet.getRange("D1:D1");
    var cell = range.getValue();
    var rangename = sheet.getRange("B1:B1");
    var name = rangename.getValue();
    var recipients = cell   ","   "waak@tempo-team.be";
    var params = {
      method: "get",
      headers: { "Authorization": "Bearer "   ScriptApp.getOAuthToken() },
      muteHttpExceptions: true
    };
    var blob = UrlFetchApp.fetch(url, params).getBlob();
    blob.setName(ss.getName()   ".xlsx");
    GmailApp.sendEmail(recipients, "Bevestiging vakantiejob WAAK komende zomervakantie 2021", "Beste "   name   ","   "nnGoed nieuws! Je werd geselecteerd voor een vakantiejob bij WAAK."   "nIn bijlage vind je alvast jouw planning."   "nnGelieve ons zo snel mogelijk te bevestigen of je deze periode kan werken via waak@tempo-team.be of 056/52 15 50."   "nnAlle informatie over eventuele infosessie en afdeling zullen later doorgegeven worden."   "nVeel succes!"   "nnVriendelijke groeten,nnTempo-Team Waak"   "nDavina en Lisa"   "nTel: 056/52 15 50"   "nwaak@tempo-team.be", { noReply: true, attachments: [blob] });
  } catch (f) {
    console.log(f.toString());
  }
}
 

Ответ №1:

Я считаю, что ваша цель заключается в следующем.

  • Вы хотите экспортировать конкретный лист в электронную таблицу Google в формате XLSX с помощью Google Apps Script.

В этом случае я хотел бы предложить добавить информацию об идентификаторе листа в параметр запроса. Но я подумал, что ваша конечная https://docs.google.com/feeds/download/spreadsheets/Export?key=###amp;exportFormat=xlsx точка может быть немного старше. Хотя я думаю, что это можно использовать сейчас, я не уверен, когда это устарело. Но я не уверен в деталях этой ситуации. Итак, на текущем этапе я хотел бы предложить использовать конечную точку https://docs.google.com/spreadsheets/export?id=###amp;exportFormat=xlsx . Это можно получить с помощью Drive API v3. Когда это отражается в вашем скрипте, это выглядит следующим образом.

Модифицированный скрипт:

От:

 var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key="   ss.getId()   "amp;exportFormat=xlsx";
var sheet = ss.getSheetByName('Planning Waak_Zomervakantie');
 

Для:

 var sheet = ss.getSheetByName('Planning Waak_Zomervakantie');
// var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key="   ss.getId()   "amp;exportFormat=xlsxamp;gid="   sheet.getSheetId();
var url = "https://docs.google.com/spreadsheets/export?id="   ss.getId()   "amp;exportFormat=xlsxamp;gid="   sheet.getSheetId();
 

Ссылки: