GASでCSV出力処理
Google Apps ScriptでCSV出力したかったのだけど、
データにカンマ(,)が含まれてて、サンプルソース調べたんだけど、
ジャストな記事がなかったので、あきらめて自作。
その結果を残しておく。
コード
//出力先のフォルダIDを入力。IDはURL参照。
var folderId = '(フォルダIDを記入)';
//ボタンから呼び出す処理
function createCsv() {
var csvData = loadData('(シート名を記入)');
writeDrive(csvData,'(出力ファイル名を記入)');
}
//CSV形式データ作成処理
function loadData(sheetName) {
var data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName).getDataRange().getValues();
var csv = '';
var rows = data.length;
var cols = data[0].length;
for(var r = 0; r < rows; r++) {
for(var c = 0; c < cols; c++) {
csv += '"' + data[r][c] + '"' + ',';
}
csv += '\r\n';
}
return csv;
}
//CSVファイル出力処理
function writeDrive(csvData, fileName) {
var drive = DriveApp.getFolderById(folderId);
var contentType = 'text/csv';
var charset = 'utf-8';
var blob = Utilities.newBlob('', contentType, fileName).setDataFromString(csvData, charset);
drive.createFile(blob);
}
備考
GASのシンタックスハイライトって、何選べばいいのかな。
とりあえず、JavaScriptにしておいた。
""で括るかどうかとか、区切り文字何にするかとかそのうち全部指定できるように作り変えたいな。
行末のカンマとかあるし。