【GAS】Googleドライブ上にファイルを作成するcreateFile

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
icon_for_DriveApp_createFile

Googleドライブ上にファイルを作成する— createFile()

今回はGoogle Apps Scriptを使ってGoogleドライブ上にファイルを作成するcreateFile()メソッドをご紹介しようと思います。

今回のメソッドでは、ドライブ上にファイルを作成する方法をサンプルコードを用いてご紹介します。DriveAppのメソッド全般に言えることですが、今回のメソッドもDriveApp.createFile()とFolder.createFile()という2つの使い方があります。他のメソッドと同じようにDriveAppに対して使用するときにはフォルダを指定せずにファイルの作成処理を実行します。この場合はマイドライブ直下にファイルを保存します。一方でFolderクラスに対して処理を行う場合は指定したフォルダの直下にファイルを作成します。

今回は実際の挙動が確認できるようにWEBアプリ形式で処理を実行できるようにしておきました。

WEBアプリ形式の実演URL:https://script.google.com/macros/s/AKfycbwb_wz6-FDwM1dHRnrRTVFuwP45TwZbynCT8N512nVExFf30Gs/exec

流れとしては下記スクリーンショットのような流れです。WEBアプリの手順①

 

『ファイルを作成する』ボタンをクリックするとテキストフィールドに記載してある住所や座標、地名を中心としたGoogleの地図画像を作成してドライブに保存するプログラムを作成しました。クリックすると、WEBアプリの手順②

確認ダイアログが表示されますので、『作成する』をクリックします。ローダーが表示された後、無事画像がドライブに保存されると、WEBアプリの手順③

作成完了のダイアログが表示されました。OKボタンをクリックすると、WEBアプリの手順④

作成された画像のプレビューが表示されます。保存先のフォルダを覗いてみると、WEBアプリの手順⑤

無事ファイルが作成されていることが確認できます。今回ご紹介するcreateFileを利用すると、このように簡単に新しいファイルをGoogleドライブ上に作成することができます。マップ画像を作成するコードは公式リファレンスから拝借致しました。Googleの場合は、日本語でも英語でも自動的に認識してほしい画像を表示してくれるのがいいですね。

こんな感じで操作をする感じです。今回のフォルダはURLが分かる方には閲覧権限を付与しているのですが、そのフォルダに直接ファイルを作成するテクニックも密かに使っています。このテクニックを活用すれば、大きいファイルのアップローダーなんかも作成することができますよ。GASの上限時間内で処理できるか考えなければ、たしか最大で5TBくらいまでのファイルが保存ができたと思います。

さて、ここからは、実際のコードの使い方説明に入りたいと思います。

        1. createFile(blob)

        『 引数に入れる値 』

        • blob(blobデータ) — 作成したいファイルデータを代入

        createFile(blob) —マイドライブ直下保存バージョン

        サンプルコード1
        //マイドライブに地図画像ファイルを保存するプログラム
        function sampleCodeForDriveAppCreateFile1() {
          var blob = Maps.newStaticMap().setCenter("東京都港区芝公園4丁目2−8").getBlob();
          DriveApp.createFile(blob);
        }

        『 変数の説明 』

        blob = マイドライブに保存したいファイルのデータ

        スクリプトができたら▶ボタンでプログラムを実行してみましょう。マイドライブ上に東京タワーを中心とした地図画像を作成するコードを組みました。今回はフォルダを指定していないので、ファイルはマイドライブに保存されます。フォルダを指定する場合はまず最初にフォルダを取得してから取得したフォルダに対してcreateFileを実行すれば良いと思います。

      1. サンプルコードは下記のコードをご参照ください。

        createFile(blob) —指定フォルダ保存バージョン

        サンプルコード1
        //指定フォルダに地図画像ファイルを保存するプログラム
        function sampleCodeForDriveAppCreateFile1() {
          var folder = DriveApp.getFolderById("");
          var blob = Maps.newStaticMap().setCenter("東京都港区芝公園4丁目2−8").getBlob();
          folder.createFile(blob);
        }

        『 変数の説明 』

        folder = 保存先フォルダを指定
        blob = 指定フォルダに保存したいファイルのデータ

        まとめ

        今回のページで、新しいファイルをマイドライブ直下に保存する方法と、指定のフォルダに作成する方法を覚えました。作成するファイルは、今回ご紹介したマップ画像だけでなく、CSVやテキストファイルなど、様々なファイルの作成が可能です。使い方を覚えるとできることの幅がかなり広がります。スプレッドシートを手動でCSV形式で出力するとUTF-8形式の文字コードで出力されますが、createFileを活用すると、Shift-JIS形式の文字コードでCSVを出力できますよ。

      2. Shift-JISのCSVが必要な方はぜひ挑戦してみてください。

SNSでもご購読できます。

コメントを残す

*