HRR Co., Ltd.

技術的な記録を残していくことを目的としています。1次情報を大事にしています。

GAS (Google Apps Script) でファイル出力を行う

はじめに

小ネタです。
GAS (Google Apps Script) で文字コードを指定しつつ、ファイル出力することを考えます。

コード

/**
 * ファイル書き出し
 * @param {string} fileName ファイル名
 * @param {string} content ファイルの内容
 */
function createFile(fileName, content) {  
  var folder = DriveApp.getFolderById('##### フォルダID #####');
  var contentType = 'text/plain';
  var charset = 'utf-8';

  // Blob を作成する
  var blob = Utilities.newBlob('', contentType, fileName)
                      .setDataFromString(content, charset);

  // ファイルに保存
  folder.createFile(blob);
}

解説

使い方

フォルダID、ContentType、文字コードを指定するだけでOKです。
下記URLの******の部分がフォルダIDです。

https://drive.google.com/drive/u/0/folders/******

Blob ?

本当は createFile(name, content, mimeType) というズバリなものもあるのですが、こちらは文字コードの指定ができません。
Class DriveApp  |  Apps Script  |  Google Developers

遠回りなようですが、Blobオブジェクトを生成して、setDataFromString(string, charset) でファイルの内容を文字コード指定でセットしております。
Class Blob  |  Apps Script  |  Google Developers

最後に

JavaScriptの知識だけでは対応できないことも多いので、今後も小さいネタでも投下していこうと思います。
以上でした!