ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。プログラム&ロボット大好きなポンコツが日々の記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

スプレッドシートのデータをGASを使って1クリックでCSVに吐き出すものを作る。

いろんなデータをGoogleのスプレッドシートで管理することが多くなったような気がします。

例えば、マスタデータの管理をスプレッドシート上に用意して、ボタンをポチッと押すだけでCSVに吐き出してくれるものがあったら便利そう!

そう思って、今回作ってみましたので、紹介したいと思います。

 

スプレッドシートを作成する

まずはGoogle Driveを開いてスプレッドシートのプロジェクトを作成しましょう。

f:id:ponkotsu0605:20190418004558p:plain

最近、すき家にハマっているので「すき家の牛丼♪」という名前にしました。

 

スプレッドシートにデータを入力する

とりあえずなんでもいいのでデータを入力しておいてください。

f:id:ponkotsu0605:20190418004625p:plain

自分は、牛丼ねぎキムチ牛丼ねぎ玉牛丼シャキっと和風オニサラ牛丼の値段を入力しました。三種のチーズ牛丼を入力するのを忘れてました。

 

ボタンを設置する

トリガーとなるボタンをスプレッドシート上に設置したいと思います。

f:id:ponkotsu0605:20190418004650p:plain

「挿入→図形描画」からボタンとして挿入したい図形を設定してください。

f:id:ponkotsu0605:20190418004717p:plain

自分はこんな感じのボタンを設置しました。

 

Google Apps Scriptのプログラムを書く

スプレッドシートの上のメニューから「ツール→スクリプトエディタ」をクリックします。

すると、GASのプロジェクトが開かれます。

f:id:ponkotsu0605:20190418004752p:plain

このように以下のスクリプトを入力します。

 

var folderId = '1iL8KSHbVBMY2iYkjVhg86b27lBVcLJOe';

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";
  }
  Logger.log(csv)

  return csv;
}

function writeDrive(csv) {
  var drive = DriveApp.getFolderById('1iL8KSHbVBMY2iYkjVhg86b27lBVcLJOe');
  var fileName = 'Gyudon.csv'
  var contentType = 'text/csv';
  var charset = 'utf-8';
  var blob = Utilities.newBlob('', contentType, fileName).setDataFromString(csv, charset);
  drive.createFile(blob);
}

1行目のfolderIdは保存したいドライブのディレクトリのIDを入力します。

IDは、ドライブのディレクトリを開いたURLの最後の文字列にあたります。

例えば、「https://drive.google.com/drive/u/0/folders/1iL8KSHbVBMY2iYkjVhg86b27lBVcLJOe」の場合は、「1iL8KSHbVBMY2iYkjVhg86b27lBVcLJOe」がIDになります。

 

ボタンにスクリプトを割り当てる

スプレッドシートに戻って、先程設置したボタンを右クリックして「︙」を押してみてください。

f:id:ponkotsu0605:20190418004844p:plain

「スクリプトを割り当て」という項目が出ると思うので、それを選択してください。

どのスクリプトを割り当てますか?と聞かれると思うので、「createCsv」を入力してください。こうすることで、ボタンを押すとcreateCsvというメソッドが呼ばれるようになります。

 

ボタンを押してみる

さて、実際にボタンを押してみましょう。

f:id:ponkotsu0605:20190418004907p:plain

すると、このように指定したディレクトリ以下にCSVが作成されると思います。自分の場合はGyudon.csvというファイル名を指定したので、そのファイル名でできています。

f:id:ponkotsu0605:20190418004932p:plain

これを開いてみると、ちゃんとCSVとして出力されていることが確認できると思います。

品名,値段
牛丼,350
ねぎキムチ牛丼,480
ねぎ玉牛丼,480
シャキっと和風オニサラ牛丼,500

このようにして、簡単にスプレッドシートに入力されているデータをCSVとして出力することができました。 これをいい感じにサービスに適用すれば、マスタデータの管理コストがきっと減るでしょう!