I have a Google Spreadsheet with some different sheets. I want to send my Google Spreadsheet as excel attachment to some specific addresses in everyday morning. How can I do this easily? I have heard that I can do it by GAS

But I am very new in using Google Spreadsheet and Google Apps Script as well.

1 Answer 1


Hi you can try the following script

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

  // 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) {

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.