earthpg:GAS専門のプログラミングスクール

初心者必見!GASでCSVデータを快適に操作するテクニック全集

GASでCSVファイルを扱いたいんですが、どうしてもCSVの読み込み出力方法がわからなくて…
猫男
猫男
catman
catman
それならcatmanが、GASでのCSV操作の基本を教えてやろう。いざ、CSVの快適な操作の世界へ!

GASでCSVデータを読み込む方法

まずは、GASを使ってCSVファイルをローカルからインポートするところから始めよう。

ローカルからのCSVインポート


function importCSVFromLocal() {
  var file = DriveApp.getFilesByName('yourfile.csv').next();
  var csvData = Utilities.parseCsv(file.getBlob().getDataAsString(), ',');
  Logger.log(csvData);
}
  • このスクリプトでは、Googleドライブからyourfile.csvを探し、parseCsv配列として読み込む。
  • getBlobはファイルの内容を取得するのに使う。

文字化け対策

もし文字化けが発生する場合は、以下のUTF-8指定を試してみるといいさ。


file.getBlob().getDataAsString('UTF-8');
やっとCSVのインポートができた…けど、今度は出力も試してみたい!
猫男
猫男
catman
catman
よし、次はCSV形式でのデータ出力について見てみよう。

GASでCSVデータを出力する方法

GASで配列をCSV形式に変換し、ファイルとしてダウンロードできるようにするんださ。

CSVデータの出力


function exportToCSV() {
  var data = [
    ['名前', '年齢', '職業'],
    ['山田', '30', 'エンジニア'],
    ['佐藤', '28', 'デザイナー']
  ];
  
  var csvString = data.map(row => row.join(',')).join('\n');
  var blob = Utilities.newBlob(csvString, 'text/csv', 'output.csv');
  DriveApp.createFile(blob);
}
  • このスクリプトでは、配列データをmapを使ってCSV形式の文字列に変換する。
  • 結果はnewBlobを使ってファイルとしてGoogleドライブに保存できる。

練習問題:GASでCSVを操作してみよう!

これを実践してみよう:

  1. GASを使って、任意のCSVファイルを読み込み、ログに出力してみる。
  2. 読み込んだデータを加工して再度CSVとして出力する。

解答・解説

以下のスクリプトを参考に、実際に試してみると良いさ。


function practiceCSVOperation() {
  // CSVを読み込む
  var file = DriveApp.getFilesByName('yourfile.csv').next();
  var csvData = Utilities.parseCsv(file.getBlob().getDataAsString());
  
  // データを加工、この場合はそのまま出力
  var modifiedData = csvData; // 加工が必要ならここで行う
  var csvString = modifiedData.map(row => row.join(',')).join('\n');
  
  // 加工したデータをCSV出力
  var blob = Utilities.newBlob(csvString, 'text/csv', 'modified_output.csv');
  DriveApp.createFile(blob);
  
  Logger.log('CSV操作完了');
}
  • ファイル読み込みと同時に、parseCsvでデータを配列形式で取得している。
  • その配列を元に、新しいCSV形式の文字列を生成し、newBlobでファイルとして保存している。
GASでのCSV操作がこんなに簡単だなんて!他のデータもどんどん操作してみたくなりました!
猫男
猫男
catman
catman
それでこそ元気だ。GASを使いこなして、自由にデータを操る楽しさを満喫しよう!