🍀

xlsxファイルをスプレッドシートに変換するGAS

2024/06/04に公開

サービスの追加でDrive APIを選択

xlsx2spreadsheet.gs
/**
 * xlsxのファイルIDから指定したフォルダにスプレッドシートを出力する
 * @param {string} xlsxId xlsxのファイルID
 * @param {string} folderId 出力先フォルダID
 * @returns {SpreadsheetApp.Spreadsheet} 変換後のスプレッドシート
 */
function createSpreadsheetFromXlsx(xlsxId, folderId) {
  const file = DriveApp.getFileById(xlsxId);
  const options = {
      title: file.getName(),
      mimeType: MimeType.GOOGLE_SHEETS,
      parents: [{id: folderId}]
  };
  let result = null;
  let counter = 1;
  while (result === null && counter < 3) {
    // user limit exceeded exception対策
    Utilities.sleep(counter * 10);
    counter += 1;
    try {
      result = Drive.Files.insert(options, file.getBlob());
    } catch (e) {
      console.error(e);
    }
  }
  return SpreadsheetApp.openById(result.id);
}

Discussion