テーマを変更中で、表示が崩れているところがあります…!

【bubble】CSV Creatorプラグインが最高だった

.bubble
.bubble

今回は、CSV Creatorプラグインの紹介です。

他のところでも書かれているのを見ましたが、使ってみて感動したので書いてみることにしました。

CSVエクスポートは、有料プランで利用できるデフォルトのアクション download data as CSV がありますが、テーブルのカラム名でダウンロードされるのでユーザーによっては日本語にして欲しいなどあるかと思います。

CSVエクスポートをする場合、

  • リレーションのあるテーブルの中身もダウンロードしたい
  • リストのデータを取り出したい

という要望があると思います。

お仕事でもほぼ必ずあって、CSVダウンロードをするプラグインを作成していました。リレーションのあるテーブルからデータを取り出すために、テーブルデータを解析することまでしました。

…ですが、出会ってしまいました…😍

プラグインをインストール

まずはプラグインをインストールしましょう。

プラグインのインストール

CSVで検索すればすぐ出てくるはずです。

これが無料なんて感動です。ありがとう😢

テーブルを作る

とりあえずリレーションのあるテーブルを作ってみます。

簡易ECのようなテーブル形式にしておきました。User、Product、Orderの3テーブルと、Option Setsを1つです。

Userテーブル
Productテーブル

ProductテーブルにはOption Setsのカラムを追加しています。

Productテーブルの中身
Orderテーブル

OrderテーブルにはUser、Productとリレーションを持たせました。

Orderテーブルの中身

ではこれをダウンロードします。

ダウンロードしてみる

ボタンをクリックしたらダウンロードするようにアクション Create CSV from JSON を選択します。

Create CSV from JSON

ファイル名も指定できるので、「.csv」の前の部分を指定します。よくやるのはダウンロードタイミングの日付をformatted as で指定する形です。

ここでJSONをどう設定するのかというと、JSON CONTENTのところにSearch for Table:format as textを書くのです。

JSON CONTENTの設定①

とりあえず、全てのorderをCreated Dateの昇順で検索します。

format as textの内容は以下のような形で作成します。

JSON CONTENTの設定②

Content to show per list itemは { } で囲みます。

JSONは { “key” : “value” } の形式なので、CSVのヘッダー名にしたい部分をkeyの位置に入力します。CSVの値の部分をThis order’s *** として、このOrderの***の値を指定します。

このとき、リレーションのUserの名前を指定するには、

This order's User's name

日付等を書き出したい形式で指定するには、

This order's Creation Date:formatted as yyyy/mm/dd

OptionのDisplayを表示するには、

This order's product's size's Display

単価と数量から合計金額を計算するには、

This order's product's price * This order's quantity

という形で設定できます。

毎行計算すると重いかな…と思っていましたが、自分で作ったプラグインより速かった…😂(行数が増えたらわかりません…)

Delimiterには「,」(半角カンマ)を入れておきます。

ダウンロードしてみる!

ボタンをクリックすると、csvがダウンロードされるので開いてみます。

ダウンロードしたCSV

ちゃんと計算もされているし、リレーションテーブルの情報も取得できています。

内部的には、便利なPapaparseライブラリを利用しています。

(ここは自分で使っていたのと同じでした)

今後、自分で作ったプラグインは使わないだろうな…。

タイトルとURLをコピーしました