概要
GoogleAppsScript(GAS)を利用して、GoogleDrive内にあるcsvファイルを読み込んでグラフ化するスクリプトを作成してみました。
1ファイルなら手動でグラフ化すれば良いのですが、複数ファイルあり何度も同じ操作をするのが面倒になり、GASを利用して半自動でCSVファイルをスプレッドシートのグラフにすることにしました。
スクリプト(GoogleAppsScript)
function createChart() {
// シートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// セルの値を取得
var folder_id = sheet.getRange("B1").getValue();
// フォルダを選択
var folder = DriveApp.getFolderById(folder_id);
var files = folder.getFilesByType(MimeType.CSV);
while (files.hasNext()) {
var file = files.next();
var csv = file.getBlob().getDataAsString();
var csvData = Utilities.parseCsv(csv);
var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet();
var range = sheet.getRange(1, 1, csvData.length, csvData[0].length);
range.setValues(csvData);
var chart = sheet.newChart().asBarChart().addRange(range).setPosition(1, 3, 0, 0).build();
sheet.insertChart(chart);
sheet.setName(file.getName());
}
}
- スプレッドシートからアクティブなシートを取得する。
- シートのセル B1 の値(フォルダのID)を取得する。
- そのIDに対応するフォルダをGoogleドライブから取得する。
- フォルダ内のCSVファイルをすべて取得する。
- フォルダ内の各CSVファイルについて、次の手順を実行する。:(whileの部分)
・CSVファイルの内容を取得し、文字列として処理する。
・CSVデータをパースし、2次元の配列に変換する。
・新しいシートを作成する。
・CSVデータを新しいシートに挿入する。
・チャートを作成し、CSVデータの範囲を指定する。
・チャートをシートに挿入する。
・シートの名前をCSVファイルの名前に設定する。
使い方
1.GoogleDriveにCSVファイルとスプレッドシートを配置
2.GoogleドライブのURLの最後の部分をコピー
3.スプレッドシートのB1セルにコピーしたURLを貼り付け
4.GoogleAppsScript(GAS)の実行(初回は認証・許可を行う必要があります)
5.スプレッドシートに新しいシートが追加されて、CSVファイルをグラフ化される
まとめ
GoogleAppsScript(GAS)を使用して簡易的なグラフ作成を行いました。
15行ほどのコードでCSVファイルのグラフ作成を自動で行えました。
もっとグラフの精度、見栄えを良くしたい場合は、スクリプトのwhileで囲われた部分をカスタマイズしてください。
CSVファイルをGoogleドライブにアップロードする手間がありますが、グラフにする対象が複数ある場合はGoogleAppsScriptを利用して、グラフにした方が手間が省けると思います。
コメント