스프레드시트 데이터를 이중 코테 ""로 둘러싸고 내보내기(Google Apps Script)

하고 싶은 일



이 2주간에 너무 많이 사용할 필요가 있었기 때문에…
스프레드시트 데이터를 이중 코트로 둘러싸고 내보내기



↓ ↓ ↓ 이런 식으로 ↓ ↓ ↓

“Title1”, “Title2”, “Title3”
“hoge”, “hogehoge”, “hogehogehoge”

배경



여러가지 시스템의 수정을 손으로 하는 것 귀찮아서 자동화하고 싶지만, 말해도 만들고 있는 시간도 그렇게 없기 때문에 굳이 csv export 수입으로 정리하고 싶다!
하지만 잘 생각하면 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);
}

좋은 웹페이지 즐겨찾기