#やりたい事
この2週間であまりにも多用する必要があった為…
スプレッドシートのデータをダブルコーテで囲ってエクスポートする
↓ ↓ ↓コレをこうする↓ ↓ ↓
“Title1”, “Title2”, “Title3”
“hoge”, “hogehoge”, “hogehogehoge”
#背景
いろいろなシステムの修正を手でやるの面倒いから自動化したいけど、いうても作ってる時間もそんなにないから取り敢えずcsvエクスポートインポートで片付けたい!
でもよく考えたらExcelでダブルコーテで囲ってエクスポートできない?し、うちMacしかないからAccessもないし、1番簡単そうなのがGoogleのスプレッドシートやったから、GASでダブルコーテで囲ってエクスポートするやつを書きましたよ
#やった事
スプレッドシートのメニューにエクスポート用のメニューを追加。
エクスポートメニューを実行すると、GoogleDriveの指定のフォルダへデータが保存される。
書いたスクリプト。
CSVexport.gas
// メニューバーにカスタムメニューを追加
function onOpen() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "ダブルコーテで囲ってCSV出力",
functionName : "createCsv"
}];
spreadsheet.addMenu("管理ツール", entries);
};
//csvを出力したいフォルダのIDをXXXへ入れてください。
var folderId = 'XXXXXXXXXXXXXXXXXXXXXXXXXX';
function createCsv() {
var csvData = loadData();
writeDrive(csvData);
}
function loadData() {
var data = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
var csv = '';
for(var i = 0; i < data.length; i++) {
csv += '"' + data[i].join('","') + '"\r\n';
}
return csv;
}
function writeDrive(csv) {
var drive = DriveApp.getFolderById(folderId);
var fileName = 'export.csv'
var contentType = 'text/csv';
var charset = 'utf-8';
var blob = Utilities.newBlob('', contentType, fileName).setDataFromString(csv, charset);
drive.createFile(blob);
}