Как конвертировать определенные таблицы Google в Excel? - PullRequest
2 голосов
/ 18 октября 2019

Уважаемые эксперты по Google APPS Script,

Мне нужен сценарий для преобразования определенной таблицы Google и перезаписи файла Excel (.xlsx) на диске (та же папка на диске). У меня есть сценарий, чтобы сделать это наоборот. Я попытался изменить сценарий, чтобы он работал, и искал в интернете, чтобы найти сценарий, но те, которые я нашел, не работали. Я не обладаю знаниями в области программирования в этой области, поэтому надеюсь, что кто-то может помочь мне с этим.

Сценарий, который делает это наоборот, большое спасибо эксперту по сценариям, который поделился этим, похоже на ....

function convertExceltoGoogleSpreadsheet(fileName) {
  var dstFileId = '1dL8MbCKdoWFcV8............etc';
  fileName = fileName || 'Conversie_Test.xlsx'; // excel_file_name.xlsx = name of specific Excel file
  var excelFile = DriveApp.getFilesByName('Conversie_Test.xlsx').next();
  var fileId = excelFile.getId();
  var srcFileId = fileId; // file Id of Excel file

  Drive.Files.update({}, dstFileId, DriveApp.getFileById(srcFileId))
}

Надеюсь, кто-нибудь может мне помочь в этом.

С уважением, Марко

1 Ответ

1 голос
/ 18 октября 2019

Ответ:

Вы можете использовать метод экспорта Drive для экспорта листа в виде файла Excel и вставки его в Drive с использованием Advanced Drive Service.

Предварительные требования:

Убедитесь, что вы включили услугу Advanced Drive, перейдя к Resources > Advanced Google Services, прокрутив вниз до Drive API и, убедившись, что v2 выбран в раскрывающемся списке, щелкнув ползунок справасторона, так что вместо «выкл» он становится зеленым и переключается на «вкл».

Код:

function convertSheetToXlsx() {
  var ssID = "<your-spreadsheet-id>";
  var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=";
  var exportMethod = "&exportFormat=xlsx";
  var parameters = {
    method: "get",
    headers: {
      "Authorization": "Bearer " + ScriptApp.getOAuthToken()
    },
    muteHttpExceptions: true
  };

  var fileAsBlob = UrlFetchApp.fetch(url + ssID + exportMethod, parameters).getBlob();

  fileAsBlob.setName(SpreadsheetApp.openById(ssID).getName() + ".xlsx");

  var fileData = {
    title: SpreadsheetApp.openById(ssID).getName() + ".xlsx",
    mimeType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
  };

  Drive.Files.insert(fileData, fileAsBlob);
}

Ссылки:

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