前提・実現したいこと
GoogleAppsScriptでGoogleDriveに存在しているexcelファイルをGoogleスプレッドシートに変換したいです。
発生している問題・エラーメッセージ
Drive.Files.insertの行で以下のエラーが発生します。
次のエラーが発生し、drive.files.insert の呼び出しに失敗しました: Bad Request
該当のソースコード
変換元のexcelファイルは"template.xlsx"、それが存在しているフォルダは"myFolder"です。
変換後のgsheetファイル("mySheet")は同じフォルダに出力するようにしています。
main関数を実行するとconvertExcelToGsheet関数が呼び出されるようになっています。
gas
1function convertExcelToGsheet(folderName,excelFileId){ 2 var folderID=DriveApp.getFoldersByName(folderName).next().getId(); 3 var convertInfo = { 4 title: "mySheet", 5 mimeType: MimeType.GOOGLE_SHEETS, 6 parents: [{id: folderID)}], 7 }; 8 var excelFileObj=DriveApp.getFileById(excelFileId) 9 var res = Drive.Files.insert(convertInfo, excelFileObj.getBlob()); 10 11 return res.id; 12} 13 14function main(){ 15 var folderName="myFolder" 16 var templateFileName="template.xlsx" 17 var folderId=getFolerID(folderName) 18 var folderObj=DriveApp.getFolderById(folderId); 19 var excelFileId=folderObj.getFilesByName(templateFileName).next().getId(); 20 var sheet=convertExcelToGsheet(folderName,excelFileId) 21 Logger.log(sheet) 22}
DriveAPIはオンにしてあります。
質問したいこと
上記のエラーを解決するにはどうしたらよいでしょうか?
よろしくおねがいいたします。
追記
変換元のexcelファイルを.xls
ファイルにしたら一応動きました。
しかし、できれば.xlsx
ファイルを変換したいため、引き続き回答募集します。
動かないコードを載せてるから回答がつかないんですかね。
回答2件
あなたの回答
tips
プレビュー