Excel の表をコードの配列に変換する
このツールができること
Excelはデータを行と列で保持しますが、ほとんどのプログラミング言語では同じデータを配列として扱います。このツールは開いたブック(XLSX、XLS、CSV、ODS、最大10MB)を読み込み、シートを解析して、セルの格子をそのまま貼り付けられる配列リテラルに書き換えます。対応言語は JavaScript、Python、Java、C#、PHP、Go、Ruby、Rust です。出力は、生の格子をそのまま写した2次元配列と、ヘッダー行をキーにしたオブジェクト配列から選べます。
出力は固定のテンプレートではなくシートの実際の構造から生成されるため、ファイルに含まれる列と行がそのままコードとして返ってきます。
こんなときに使う
表データを実行時に読み込むのではなく、コードに直接埋め込みたいときに便利です。テスト用のシードデータ、参照テーブル、フィクスチャ、固定の設定、プロトタイプ用の簡単なモックなどが該当します。パーサーを書いたり、何十行も手で入力したりする手間が省けます。Excelで参照データを管理している担当者は貼り付けるだけの配列リテラルを開発者に渡せ、開発者は取引先の表を、プロジェクトがすでに使っている構文にそのまま取り込めます。通常は次の2点が続きます。日付は 2024-01-15 のように、Excelが表示するテキストのまま取り込まれます。列にUnixタイムスタンプが入っている場合は、タイムスタンプ変換器で読み戻せます。また、出力先がソースコードではなくデータファイルなら、CSV ↔ JSON変換器のほうが適しています。
具体的な例
ヘッダー行が Name、Age、Active で、その下にデータ行が続くシートを考えます。「最初の行をヘッダーとして使用」をオンにし、JavaScriptでオブジェクト配列の出力を選ぶと、`const data = [ {Name: "Alice", Age: 30, Active: "TRUE"}, ... ];` が得られます。ヘッダーをオフにして2次元配列に切り替えると、同じシートが `[["Name","Age","Active"], ["Alice","30","TRUE"], ...]` になります。型の検出をオンにすると、オブジェクト配列の出力で 30 は引用符付きのテキストではなく数値のままになります。
補足と注意点
ブックに複数のシートがある場合は、シート一覧で別のシートを選ぶまで最初のシートが変換されます。セルはExcelでの表示どおりに取り込まれるため、日付はシリアル値ではなく 2024-01-15 のようなテキストになります。オブジェクト配列の出力では、型の自動検出が数字のテキストを実際の数値に変換します。列が本当にテキストである場合、たとえば先頭に0が付く郵便番号やIDコードでは、これをオフにしてすべてのセルを文字列のまま残してください。