今回も前回に引き続き、Google Apps Script(GAS)についてです。今回は、GASでファイルの拡張子を変更する方法です。正直、下記のサイトしか参考になるサイトが見つからず、今回のkmlからxmlへの変換と下記サイトのpngからjpgへの変換以外についてはうまくいかない場合もあるかもしれませんが、色々と試してみて頂ければと思います。この記事が参考になりましたら、幸いです。
1. プログラムの流れ
GASプログラム内でファイル形式を変換する流れは次のようになります。
- 変換元のファイルのバイトデータを取得(blob.getBytesメソッド)
- このバイトデータから、変換する拡張子のblobデータを生成(Utilities.newBlobメソッド)
- blobデータからファイルを生成、グーグルドライブに保存(DriveApp.createFileメソッド)
2.プログラム内容
上記の流れに沿ってプログラムを組みます。今回は、変換部分だけのプログラムを記述していますので、対象ファイルをGoogleドライブなり、HTTPリクエストなりで取得してくる部分は省略しています。また、Googleドライブに変換後のxmlデータを保存しています。
var fileBytes = fileBlob.getBytes(); // 変換元ファイルのバイトデータを取得
var xmlBlob = Utilities.newBlob(fileBytes, 'application/xml', 'new.xml') // xmlファイル用のblobデータの生成
DriveApp.createFile(xmlBlob); // xmlファイルの生成と保存
上記のプログラムによって、作成されたファイルがGoogleドライブに保存されます。ポイントは空のblobファイルを作成し、そこに元データのバイトファイルを入れていることです。
なお、GASのblobというデータ型はデータ変換の中間媒体となる、GAS独自のクラスです。これを利用することでバイトデータや文字列データなどが容易に変換できます(Class Blob – Apps Script)。
3. まとめ
以上がGASでファイル形式を変換する方法です。他のファイル形式の変換ではうまくいかない場合もあるかもしれませんが、この記事を参考に希望のファイル形式で試して頂ければと思います。読んで頂き、ありがとうございました。この記事が参考になりましたら、幸いです。