概要
今回初めてGoogleAppsScriptを利用して、GoogleDrive内にあるcsvファイルを読み込んでグラフ化するスクリプトを作成してみました。
そのあとに今話題のChatGPTにスクリプトを作成してもらい比較してみました。
自分で作成したスクリプト
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());
}
}
ChatGPTが教えてくれたコード
function createChartsFromCSVs() {
var folderId = "YOUR_FOLDER_ID_HERE";
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFilesByType(MimeType.CSV);
while (files.hasNext()) {
var file = files.next();
var sheetName = file.getName().replace('.csv', '');
var csvData = Utilities.parseCsv(file.getBlob().getDataAsString());
var headers = csvData[0];
var data = csvData.slice(1);
var chartSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName) || SpreadsheetApp.getActiveSpreadsheet().insertSheet(sheetName);
chartSheet.clear();
chartSheet.appendRow(headers);
data.forEach(function(row) {
chartSheet.appendRow(row);
});
var chartBuilder = chartSheet.newChart();
chartBuilder.setChartType(Charts.ChartType.LINE);
chartBuilder.addRange(chartSheet.getRange(1, 1, data.length+1, headers.length));
chartBuilder.setPosition(5, 5, 0, 0);
var chart = chartBuilder.build();
chartSheet.insertChart(chart);
}
}
処理の中身は
見比べてわかる通りほぼ差がありませんでした...
どちらも以下の処理を実行しています。
1.指定したフォルダIDからフォルダ情報を取得
2.フォルダ内のCSVファイルの情報を取得
3.各ファイルをループしながら以下の処理を繰り返す
4.csvを読み込んで、チャートの種類、データ範囲、位置を設定
5.チャートをビルドし、シートに挿入
結果
自分でこのスクリプトを作成するあたり以下の事を行いました。
- GoogleAppsScriptでグラフ化を自動で出来るの調査
- 公式サイトでフォルダ情報、ファイル情報の取得方法などを調査
- コーディング方法を調べながらコーディング
- デバッグして、動作確認して不備があれば修正
上記の事に2時間弱かかりました。
ChatGPTであれば、アカウントの登録して、以下の言葉を入力して完了です。
10分ほどしかかっていません。
終わりに
GASの場合は、ChatGPTでベースを作成して、細かい個所を修正していくという方法が作成しやすいと思いました。