AstroやSvelteなどでサイトを作る際にデータをFetchして表示することが多いと思いますが、サイト制作でちょっとした共通データ(例:SELECTリスト用)を扱う際APIを用意するのも手間ですよね。そこで、ExcelのワークシートをJSONに変換して使うことにしました。
使い方
まずはリポジトリからソースを取得してビルドします。
次に設定用のJSONファイルに以下のようにパラメーターを記述します。
{ "xlsx_dir" : "(Excelワークブックのディレクトリ名)", "xlsx_wb" : "(ワークブック名)", "xlsx_ws" : "(ワークシート名)", "dist_dir" : "(JSON出力先のディレクトリ名)" }
そしてソースからビルドしたコマンドを実行します。
xlsx2json -s (設定ファイルのパス)
例:
xlsx2json -s ./config.json
これで指定したワークシートの内容がJSON形式で出力されます。出力先のディレクトリには、ワークシート名を元にしたJSONファイルが生成されます。たとえば、config.jsonで指定したワークシート名がdataの場合、data.jsonというファイルが出力されます。
出力されたJSONをAstroのコンポーネントでImportして使うことができます。
import json from '@data/data.json';
なお、SvelteKitなどで使う場合はFetchしてからコンポーネントに渡す必要があります。
🔗Svelte 入門: JSON ファイルをインポートして使う|まくろぐ
ひとりごと
最初はPHPでAPIサーバーらしきものを作ってFETCHして使おうと思っていたのですが、APIサーバーを立てるのも面倒だなと思い、ExcelのワークシートをJSONに変換して使うことにしました。個人で使う分にはこれで十分です。