Экспорт листа Google в формате .XLXS и переименование - PullRequest
0 голосов
/ 19 марта 2020

Я нашел скрипт для экспорта моей книги листов Google в формате .XLXS и отправки ее по электронной почте на адрес.

Однако он не работает, когда я пытаюсь установить для имени файла .xlxs значение. в рабочей тетради. код ниже:

function getGoogleSpreadsheetAsExcel(){

  try {

    var ss = SpreadsheetApp.getActive();

    var name = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Project Details').getRange(2,A).getValue()

    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( name + ".xlsx");

    MailApp.sendEmail("(i know an email address goes here)", "Tablet Data Import", "The XLSX file is attached", {attachments: [blob]});

  } catch (f) {
    Logger.log(f.toString());
  }
} 

Была бы признательна за помощь

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Если изменение getValue неэффективно, то, возможно, ...

Добавьте функцию setName к первоначальному созданию BLOB-объекта.

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

blob.setName (name + ".xlsx");

до

var blob = UrlFetchApp.fetch (url, params) .getBlob (). SetName (name + ".xlsx");

I'm не особенно опытный в скрипте приложений Google, но я обнаружил, что такие команды должны быть после var , чтобы быть эффективными.

0 голосов
/ 19 марта 2020

Проблема вызвана тем, как вы используете метод getRange()

Существует два способа сделать это правильно:

getRange('A2')

getRange(2, 1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...