Excel から JSON への変換ツール

ワークブックをアップロードせずに、選択した XLSX または旧形式 XLS のワークシートを JSON に変換できます。選択したすべてのシートに共通する JSON 構造と、見出し、空白、値の規則を決めてから、JSON ファイル 1 つまたはローカル ZIP をダウンロードします。表示中のシートは初期状態で選択され、Hidden と VeryHidden のシートも表示されるため、必要な場合にだけ含められます。

Excel を JSON に変換する方法

  1. 1

    Excel ワークブックを選択

    20 MiB 以下の正規の XLSX またはバイナリ XLS ファイルを 1 つ選びます。変換ツールは拡張子だけでなくファイルシグネチャも確認します。

  2. 2

    ワークシートを選択

    表示中、Hidden、VeryHidden の各ワークシートを確認します。1 つ以上選択すると、同じ JSON 設定が選択したすべてのシートに適用されます。

  3. 3

    JSON の規則を選択

    レコード、行列、辞書、グループ化レコードを使えます。見出しキー、値の型、空白の表現を設定します。

  4. 4

    ローカルでダウンロード

    シートを 1 つ選んだ場合は JSON をダウンロードします。複数選んだ場合はブラウザ内で ZIP にまとめられます。

ワークブックの上限と対応形式

この変換ツールは XLSX と旧形式のバイナリ XLS ワークブックを読み取ります。XLSM、XLSB、ODS、CSV ファイルは受け付けません。ブラウザでファイルシグネチャを検証するため、別形式の名前を .xlsx.xls に変えただけでは変換できません。

ワークブック 1 つの上限は 20 MiB、ワークシートは 100 枚、セルは 200 万個です。変換ツールは読み取り前に XLSX アーカイブの構造も確認し、出力が 100 MiB を超える場合は生成を停止します。これらの上限により、破損したワークブックや異常に大きいワークブックによる制御不能なブラウザダウンロードを防ぎます。

選択したシートに共通する JSON 構造を選ぶ

JSON は配列、オブジェクト、文字列、数値、真偽値、null を表現できます。適切な構造は、ファイルを読み取るシステムによって異なります。RFC 8259 は JSON のデータモデルを説明しています。

構造 先頭行の使い方 向いている用途
オブジェクトの配列 見出し名がプロパティ名になります。 API フィクスチャ、アプリケーションデータ、多くのレコード形式のインポート。
行列 先頭行もデータとして残します。 位置に意味があるデータ、コンパクトな表、配列の配列を期待するツール。
辞書 見出し名がプロパティ名になり、選択した列が一意のキーを提供します。 商品コードから商品レコードへの対応のような高速検索。
グループ化配列 見出し名がプロパティ名になり、選択した列がグループキーを提供します。 部署、国、状態などの項目でグループ化するレコード。

オブジェクトの配列は、SheetJS で説明されている標準の動作に従います。先頭行が見出しになります。行列出力では、その行もメタデータではなくデータとして保持します。

オブジェクト、辞書、グループ化の出力には、空でなく重複しない見出し行が必要です。辞書出力には、選択したキー列に重複しない値も必要です。規則を満たさない場合、変換ツールはレコードを気付かないうちに上書きするのではなく、明確なエラーを表示して停止します。後続のシステムでワークブックにある表記が必要な場合は、整形済みのプロパティキーではなく見出しの原文をそのまま使用できます。

値、日付、数式

型推論を有効にすると、表計算の数値と真偽値は JSON の数値と真偽値のままです。受信側のシステムで型変換を制御する場合は、値を文字列として保持することもできます。空のセルは null または空文字列にできます。JavaScript の安全な整数範囲を超える整数は、桁が気付かないうちに丸められないよう文字列のまま保持されます。

日付セルが ISO 値になるのは、表計算の読み取り機能が日付として識別した場合だけです。日付に見える文字列を日付と推測することはありません。この違いは、注文番号、バージョンラベル、ロケールに応じた日付テキストなどで重要です。

変換ツールは Excel の数式を実行または再計算しません。利用できる場合は、数式のキャッシュ済みセル値を使い、書式設定された表示結果は使いません。キャッシュ済みの値がない数式は、空の値に関する設定に従います。

ブラウザ内の変換と一時ドラフト

ワークブックの読み取り、JSON の生成、ZIP の作成、ダウンロードはすべてブラウザ内で行われます。ワークブック、シートデータ、生成された JSON がアップロードされたり、当社のサーバー経由で送信されたりすることはありません。

複数ステップの操作では、検証済みのワークブックをハッシュ確認済みの一時ドラフトとして、このブラウザの IndexedDB に保持できます。URL に入るのは不透明なジョブ識別子だけで、ファイル名やワークシートの値は入りません。ドラフトは 30 分後には利用できなくなります。最初からやり直すかダウンロードを要求すると、このツールはブラウザにドラフトの削除を求めます。削除を確認できない場合は、共有端末を離れる前にこのサイトのデータを消去するよう警告が表示されます。ブラウザストレージを利用できない場合でも、操作画面は 1 ページに保たれるため、画面遷移なしで完了できます。

よくある質問

はい。1 つ以上のシートを選択できます。1 枚だけを選ぶと JSON がダウンロードされ、複数選ぶと各シートの JSON ファイルを含む 1 つの ZIP が作成されます。

通常の見出しベースのレコードにはオブジェクトの配列を使います。見出し行を含むすべての行を位置データとして残す場合は行列を使います。一意の検索には辞書を、重複する値ごとに関連レコードを集める場合はグループ化配列を使います。

見出しを使う構造では、空でなく重複しない見出しが必要です。辞書では、選択したキー列の値も一意でなければなりません。重複を拒否することで、出力ファイルが一方のレコードをもう一方で気付かないうちに置き換えることを防ぎます。

いいえ。数式セルは利用できる場合にキャッシュ済みのセル値を使い、書式設定された表示結果は使いません。ツールは数式を再計算しません。ISO 日付として書き出すのは、表計算の読み取り機能が日付と認識するセルだけで、文字列から推測することはありません。

いいえ。読み取り、変換、ダウンロードの準備はブラウザ内にとどまります。複数ステップの操作ではブラウザだけのドラフトを保持できますが、30 分後には利用できなくなります。ワークブックとそのデータがサーバーへ送られたり、URL に入れられたりすることはありません。最初からやり直すかダウンロードを要求するとブラウザに削除を求め、確認できない場合は警告を表示します。

関連ツール

このツールは他の言語でも利用できます