2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

スプレッドシートのデータをダブルコーテ“”で囲ってエクスポートする(Google Apps Script)

Posted at

#やりたい事
この2週間であまりにも多用する必要があった為…
スプレッドシートのデータをダブルコーテで囲ってエクスポートする

2DB11F4C-205F-4E74-93D5-8AD2D16BB01C.jpeg

↓ ↓ ↓コレをこうする↓ ↓ ↓

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

#背景
いろいろなシステムの修正を手でやるの面倒いから自動化したいけど、いうても作ってる時間もそんなにないから取り敢えずcsvエクスポートインポートで片付けたい!
でもよく考えたらExcelでダブルコーテで囲ってエクスポートできない?し、うちMacしかないからAccessもないし、1番簡単そうなのがGoogleのスプレッドシートやったから、GASでダブルコーテで囲ってエクスポートするやつを書きましたよ

#やった事
スプレッドシートのメニューにエクスポート用のメニューを追加。
image.png

エクスポートメニューを実行すると、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);
}

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?