スポンサーリンク

GASでテキストファイルやCSVファイルを出力

Google Apps Script(GAS)でテキストファイルやCSVファイルなどの出力をする方法です。

今回はスプレッドシートからデータを取得し、テキストファイルに出力をするサンプルです。

スプレッドシート

スプレッドシートに以下のような都道府県名のデータがあり、CSVファイル出力をしたいとします。

スポンサーリンク

コード

/**
 * スプレッドシートの内容をCSVファイルへ出力
 */
function outputCsvFile() {

  // 出力するフォルダのID('▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲'の部分は出力先のフォルダIDを設定)
  const folderId = '▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲';

  // 出力するファイル名
  const fileName = '都道府県.csv';

  // アクティブなシートを取得
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // テキストに出力する範囲のデータを取得(A列、B列に入力されているデータを取得)
  let values = sheet.getRange(1, 1, sheet.getLastRow()).getValues();

  // 改行で連結(複数列の場合はカンマ区切り)
  let contents = values.join('\n');

  // テキストファイル書き出し
  createTextFile_(folderId, fileName, contents);
}

/**
 * CSVファイル書き出し
 * @param {string} folderId フォルダID
 * @param {string} fileName ファイル名
 * @param {string} contents ファイルの内容
 */
function createCsvFile_(folderId, fileName, contents) {  

  // コンテンツタイプ
  const contentType = 'text/csv';
  
  // 文字コード
  const charset = 'UTF-8';

  // 出力するフォルダ
  const folder = DriveApp.getFolderById(folderId);

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

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

コードの解説

7行目の、'▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲'の部分は、出力するフォルダのIDを設定してください。

10行目は、出力するファイル名を設定してください。

13行目は、スプレッドシートのアクティブシートを取得しています。
実行をする際は出力をするシートを開いて実行をしてください。

16行目は、ファイルに出力をするデータを取得しています。A1から、入力されている最終行、B列までを取得しています。

19行目は、配列で取得されたデータを文字列に変換をしています。'\n'で連結することで改行して出力され、複数列の場合はカンマ区切りの文字列となります。

22行目は、31行目からの"createCsvFile_"というメソッドを呼び出しています。

34行目は、コンテンツタイプを設定しています。CSVファイルの場合は「text/csv」、テキストファイルの場合は「text/plain」のように出力する種類によって変更をしてください。

37行目は、文字コードを設定しています。環境に合わせて、「UTF-8」「Shift -JIS」などを設定してください。

40行目は、出力するフォルダを取得しています。

43行目は、ファイルへ出力するためのBlobと言われるデータを作成しています。

46行目は、ファイルに保存をしてファイル出力をしています。

実行結果

指定したフォルダへ、「都道府県.csv」というファイルが出力されます。
ファイルの内容は、以下のキャプチャのようになります。

スポンサーリンク
レンタルサーバー
おすすめの記事