web-dev-qa-db-fra.com

Envoi d'une feuille Google en tant que pièce jointe Excel par Google Apps Script

J'ai une feuille de calcul Google avec des feuilles différentes. Je souhaite envoyer chaque jour tous les jours ma feuille de calcul Google en tant que pièce jointe Excel à des adresses spécifiques. Comment puis-je faire cela facilement? J'ai entendu dire que je pouvais le faire par GAS

Mais je suis également très novateur dans l'utilisation de Google Spreadsheet et de Google Apps Script.

2
S. Shotez

Salut tu peux essayer le script suivant

function onOpen() { 
  // Try New Google Sheets method
  try{
    var ui = SpreadsheetApp.getUi();
    ui.createMenu('SendMail')
    .addItem('Send Report', 'getGoogleSpreadsheetAsExcel')
    .addToUi(); 
  }

  // Log the error
  catch (e){Logger.log(e)}

}

function getGoogleSpreadsheetAsExcel(){

  try {

    var ss = SpreadsheetApp.getActive();

    var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + ss.getId() + "&exportFormat=xlsx";

    var params = {
      method      : "get",
      headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
      muteHttpExceptions: true
    };

    var blob = UrlFetchApp.fetch(url, params).getBlob();

    blob.setName(ss.getName() + ".xlsx");

    MailApp.sendEmail("[email protected]", "Stock report of today", "The XLSX file is attached", {attachments: [blob]});

  } catch (f) {
    Logger.log(f.toString());
  }
}
1
Shazzad Kabir