黄昏の迷宮

知的好奇心を刺激する冒険

ExcelワークシートをJSONに変換する

AstroやSvelteなどでサイトを作る際にデータをFetchして表示することが多いと思いますが、サイト制作でちょっとした共通データ(例:SELECTリスト用)を扱う際APIを用意するのも手間ですよね。そこで、ExcelのワークシートをJSONに変換して使うことにしました。

使い方

まずはリポジトリからソースを取得してビルドします。

🔗hyperdb/xlsx2json

次に設定用の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 ファイルをインポートして使う|まくろぐ

ひとりごと

最初はPHPAPIサーバーらしきものを作ってFETCHして使おうと思っていたのですが、APIサーバーを立てるのも面倒だなと思い、ExcelのワークシートをJSONに変換して使うことにしました。個人で使う分にはこれで十分です。