【GAS入門】CSVをスプレッドシートに変換する3つのステップ

GASでCSVファイルをスプレッドシートに変換する方法ってどうするんだろ…。なんだか難しそうで困っちゃうなぁ…。
猫男
猫男
catman
catman
安心しろ、catmanがCSVをスプレッドシートに変換する手順を丁寧に教えてやろう。シンプルなステップでサクッとできるさ。

 

GASでCSVをスプレッドシートに変換する3つのステップ

CSV(Comma-Separated Values)とは、

各項目がカンマ(,)で区切られたテキストファイル形式

のことだったな。例えばこんなファイルがCSVだ。

name,age,city
田中太郎,30,大阪
山田花子,25,東京
佐藤健,40,名古屋

こいつは、データをテキストで表現するための一般的な形式だからよく出くわすだろう。

このCSVをGASを駆使してスプレッドシートに変換していくぞ。手順は以下の3ステップさ。

 

1. CSVファイルを読み込む

Googleドライブからファイルを取得し、そのデータを読み取る。


function readCSVFile() {
  const file = DriveApp.getFilesByName('your-file.csv').next();
  const csvData = Utilities.parseCsv(file.getBlob().getDataAsString());
  return csvData;
}

上記コードでは、DriveApp.getFilesByName()で特定のCSVファイルを取得し、Utilities.parseCsv()でデータを配列に変換している。

2. スプレッドシートにデータを書き込む

取得したデータを新しいスプレッドシートに書き込む。


function writeToSpreadsheet(csvData) {
  const sheet = SpreadsheetApp.create('CSV Data').getActiveSheet();
  sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}

上記コードは、新しいスプレッドシートを作り、getRange().setValues()でCSVデータを書き込む。

3. スクリプトを実行する

これで準備は整った。次は実際にCSVをスプレッドシートに変換してみよう。

新しいスクリプトプロジェクトのエディターで以下の関数を作成しよう。


function convertCSVToSheet() {
  const csvData = readCSVFile();
  writeToSpreadsheet(csvData);
}

これで、convertCSVToSheet()を実行すれば、CSVがスプレッドシートに変換されるはずだ。

わぁ、こんなに簡単にCSVがスプレッドシートに変換できちゃうんだね!ありがとうcatman!
猫男
猫男

練習問題

以下の練習問題に取り組んでみよう!

  1. CSVファイルの名前を”another-file.csv”に変更した場合、どうコードを修正すべきだろうか?
  2. 取得したCSVデータを”SHEET DATA”という新しいスプレッドシートに書き込んでみよう。

 

練習問題の解答・解説


function readCSVFile() {
  const file = DriveApp.getFilesByName('another-file.csv').next();
  const csvData = Utilities.parseCsv(file.getBlob().getDataAsString());
  return csvData;
}

function writeToSpreadsheet(csvData) {
  const sheet = SpreadsheetApp.create('SHEET DATA').getActiveSheet();
  sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}

1. CSVファイル名を変えるには、DriveApp.getFilesByName()内のパラメータを変更する。

2. スプレッドシート名を変えるには、SpreadsheetApp.create()に新しい名前を渡す。

catman
catman
この要点を押さえれば、さらに多様なデータ処理が行えるようになるさ。頑張れよ!