Google apps script(GAS)を使って複数のExcelファイルをスプレッドシートへ変換する方法について解説します。
この記事でわかること
- GASを使ってフォルダ内の複数のExcelファイルをスプレッドシートに変換する方法がわかる。
(事前準備)フォルダとファイルを準備する。
2つのフォルダを用意します。
事前準備として下記のフォルダを用意します。
準備するもの
- excelfile変換前フォルダ
- 変換前のExcelファイルが保存してあるフォルダ
- 変換前のExcelファイルが保存してあるフォルダ
- excelfile変換済フォルダ
- スプレッドシート変換後のファイルをプログラムが格納するフォルダ
変換前フォルダに変換するExcelファイルを移動します。
変換前フォルダにスプレッドシートに変換するExcelファイルを保存します。複数対応可能です。あまりに大量のファイルを同時変換しようとすると、GoogleのAPI起動時間制限に引っかかりエラーになる可能性があるので注意してください(例の6分の壁とか)。ファイルサイズなどにもよるので少しずつ調整してみてください。
Google Apps Scriptでスクリプトを作成する。
/* エクセルファイルをフォルダ単位でまとめてスプレッドシートに変換する。 実行にはDrive APIのサービス追加が必要だよ。 */ const sourceFolderId = 'フォルダID'; const destFolderId = 'フォルダID'; function myFunction() { // Excelファイルが入っているフォルダをidによって取得 const sourceFolder = DriveApp.getFolderById(sourceFolderId); // Excelファイルたちを変数に保存 const excelFiles = sourceFolder.getFiles(); // 変換されたファイルが格納されるフォルダをidによって取得 const destFolder = DriveApp.getFolderById(destFolderId); // Excelファイルをイテレートして順にスプレッドシートに変換 while(excelFiles.hasNext()) { var file = excelFiles.next(); convertToSpreadsheet(file, destFolder); } } function convertToSpreadsheet(file, folder) { // 各種オプションを設定 // mimeTypeをスプレッドシートにする options = { title: file.getName(), mimeType: MimeType.GOOGLE_SHEETS, parents: [{id: folder.getId()}] }; // Drive APIへfileをファイルをなげる。 Drive.Files.insert(options, file.getBlob()) }
▲エディタ画面の左側の「サービス」をクリックします。
▲「Drive API」サービスを選択して追加をクリックします。バージョンはデフォルトのままでよいかと思います。現時点(2022年3月)ではv2が最新のようですのでv2を使用しました。
スクリプトを実行します。初回実行時だけ承認画面が表示されるかと思いますのでダイアログに従って承認してください。
スクリプト実行結果を確認してみましょう。
実行結果を確認してみましょう。
テスト実行後にexcelfile変換済フォルダを見てみるとファイルが新しくできています。
拡張子は「.xlsm」となっていますが、ファイルアイコンはスプレッドシートのアイコンになっており、ファイルのプロパティを確認するとスプレッドシートとなっていることが確認出来ます。
変換が成功していればファイルアイコンがスプシのアイコンになっているはずです。
念のためファイルの中身も確認してみてね。
ファイルを変換した後スプレッドシートとして操作したい。
変換後のファイルIDを取得して操作するには、ファイルを保存したところで変数に入れるとファイル情報のオブジェクトが返ってくるので、その中のidプロパティからファイルidを取得する。
var file = Drive.Files.insert(options, file.getBlob()); let sp = SpreadsheetApp.openById(file.id).getSheets();
注意
Excelファイルをスプレッドシートに変換すると、レイアウトが崩れたり、”.xlsm”形式のExcelファイルの変換の場合はマクロが使えなくなったりします。ご注意ください。
さいごに
この記事では複数のExcelファイルをまとめてGoogleスプレッドシートに変換する方法について解説しました。当サイトではこのほかにもGASの記事を増やしていく予定です。是非RSSやTwitterの更新情報をチェックお願いします。
GAS初学者の方がテキスト1冊買うならこれ一択です。幅開く網羅されているので基本が身に付きます。
動画で学ぶならコチラがおすすめです。UdemyのGAS講座はいくつかありますが、他の講座と比較しても圧倒的レビュー数と高評価です。万が一の返金保証があるので安心して購入ができます。