Google Apps Scriptを使用してXLSファイルをGoogleスプレッドシートに変換する

私の名前はアレクサンダーで、フリーランスです。主な焦点はGoogle Apps Scriptです。 顧客の1人は、Microsoft ExcelファイルをプログラムでGoogleスプレッドシートに変換する必要がありました。 私は以前にそのような仕事に出会ったことがなかったので、Googleに助けを求めました。 たくさんのフォーラムを調べましたが、既成のソリューションは見つかりませんでした。 自転車を書かなければなりませんでした。 そして、コードは短いことが判明しましたが、解決策を見つけるのにかなり時間がかかりました。 起こったことは次のとおりです。



function convert(folderId) { var folderIncoming = DriveApp.getFolderById(folderId); var files = folderIncoming.getFilesByType(MimeType.MICROSOFT_EXCEL_LEGACY); while (files.hasNext()) { var source = files.next(); var sourceId = source.getId(); var fileName = source.getName().replace('.xls', ''); var file = { title: fileName, }; file = Drive.Files.copy(file, sourceId, {convert: true}); } }
      
      





この関数は、変換する必要のあるファイルが存在するフォルダーのIDをパラメーターとして受け取ります。 このフォルダーでMimeType.MICROSOFT_EXCEL_LEGACYタイプに対応するファイルを検索します。これらはMicrosoft Excel XLSドキュメントであり、同じフォルダーにそれらのコピーを作成します。 コピーするとき、フォーマットは変換されます。convert:trueパラメーターがこれを担当します。 名前.xlsが元のファイル名に存在する場合、削除されます。



XLSXファイルを処理する必要がある場合は、タイプをMimeType.MICROSOFT_EXCELに変更し、

 var fileName = source.getName().replace('.xls', '');  var fileName = source.getName().replace('.xlsx', '');
      
      





ただし、このコードをコピーして実行しようとすると、エラーがスローされます '' ReferenceError:The Driveオブジェクトis not defined。表示されるウィンドウで、「Drive API」を見つけてオンにします。



画像



次に、「リソース」メニューで、「Developers Console Project ...」を選択します。 表示されるウィンドウで、プロジェクトIDのリンクをたどります。



画像



表示されるページの左側のメニューで、[APIと認証]、[API]の順に選択します。 APIのリストが表示され、その中に「Drive API」リンクがあります。



画像



[APIを有効にする]ボタンをクリックします。完了です。 実行できます。



同様に、他の形式のファイルを変換できます。



この投稿が誰かの時間を節約することを願っています。



All Articles