ツール
ガイド

JSON → Excel 変換

JSON

SheetJS で JSON 配列を Excel .xlsx ブックに変換してダウンロード。

100% クライアントサイド バックエンドなし

リモート URL の取得は行いません。JSON を直接貼り付けてください。

入力
出力
このページの内容

JSON → Excel 変換とは?#

JSON → Excel コンバーターは、テーブルの形(典型的には類似オブジェクトの配列)をした JSON ドキュメントを受け取り、Excel・Google Sheets・LibreOffice で開ける本物の**.xlsx ブック**を生成します。各オブジェクトが 1 行になり、各最上位キーが列になり、シートの最初の行がヘッダーになります。出力は名前を変えただけの CSV ではなく、本物のバイナリスプレッドシートファイルです。

これは、JSON を話すシステム(API、ログ、NoSQL エクスポート)とスプレッドシートで作業する人々の間のギャップを埋めます。バックエンドは 1000 件のレコードを JSON でダンプでき、人間のアナリストはピボット・フィルタ・グラフのためにそれらを Excel で扱いたいと考えます。コンバーターは現実のデータが持ち込む厄介事——入れ子のオブジェクト、一部の行にだけ存在するフィールド、グリッドに自然に収まらない配列値フィールド——も処理します。

2 つの慣習が重労働を担います。入れ子のオブジェクトはドット記法のキーに平坦化されます——{"address": {"city": "London"}} は address.city という名前の列になります。配列値フィールド(と平坦化を生き延んだオブジェクト)は、スプレッドシートのセルはネストした構造ではなく 1 つの値を保持するため、JSON テキストとしてセルに文字列化されます。結果は、スプレッドシートソフトが文句なく開ける、フラットで長方形のテーブルです。

使い方#

  1. オブジェクトの JSON 配列を左側の入力ペインに貼り付けます。単独のオブジェクトや、{"data": [...]} のように単一キーの下に行を包んだオブジェクトも受け付けます。
  2. ネストを平坦化(既定でオン)にチェックを入れて、入れ子のオブジェクトをドット記法の列に展開します。入れ子のオブジェクトを単一セル内の JSON テキストとして保持したい場合はチェックを外してください。
  3. 出力ペインは、シートに配置される内容を正確に反映したタブ区切りのプレビューを示します——ヘッダー行に続いてデータ行です。ステータス行はエクスポートされた行数を報告します。
  4. ダウンロード .xlsx をクリックしてブックを保存します。ファイルはブラウザ内で構築され、直接ダウンロードされます。サーバーはありません。
  5. サンプルは小さな従業員データセットを読み込みます。クリアは両ペインをリセットし、ダウンロードボタンを無効化します。

主な特徴#

  • 名前を変えただけの CSV ではなく、本物の .xlsx ファイル。 ブックは SheetJS で構築されバイナリとしてダウンロードされるため、Excel は適切な列・型・シート構造付きでネイティブに開けます。
  • 乱雑なデータでも安定した列順序。 列はすべての行のキーの和集合として、最初に現れた順で計算されます。まちまちの行が列をずらしたり崩したりすることはありません——欠落したフィールドは単に空のセルになります。
  • ドット記法の平坦化。 入れ子のオブジェクトは名前付きの列(address.city、address.zip)に展開されるため、内側の値をシート上で個別にフィルタ・ソートできます。
  • タブ区切りのプレビュー。 出力ペインはシートの内容を正確に反映するため、ダウンロード前に形を検証できます。
  • 純粋なクライアントサイド。 解析・平坦化・ブック生成はすべてブラウザ内で動きます。データがページから外に出ることはありません。

実例#

サンプルを読み込むと、入力は 3 件の従業員レコードの配列になります:

[
  { "id": 1, "name": "Ada Lovelace", "role": "Engineer",  "salary": 95000,  "skills": ["math", "logic"] },
  { "id": 2, "name": "Bob",         "role": "PM",        "salary": 120000, "skills": ["docs", "plan"] },
  { "id": 3, "name": "Grace",       "role": "Architect", "salary": 150000, "skills": ["systems", "c", "cobol"] }
]

3 行とも同じキーを共有するため、列はこの順に id、name、role、salary、skills になります。skills フィールドは配列なので、各セルに文字列化されます。タブ区切りのプレビューは次のとおりです:

id	name	role	salary	skills
1	Ada Lovelace	Engineer	95000	["math","logic"]
2	Bob	PM	120000	["docs","plan"]
3	Grace	Architect	150000	["systems","c","cobol"]

ダウンロード .xlsx をクリックすると、最初のシートがこの内容どおりで、id / name / role / salary / skills がヘッダー行になっているブックが得られます。そこから Excel は salary を数値として(合計や平均が取れる)、skills をテキストとして扱います。

もし salary を省いた 4 行目を追加しても、コンバーターは 5 列すべてを出力し、そのセルだけを空のままにします——列のずれも、下流でのデータの不整列も起きません。

よくある質問#

入れ子のオブジェクトが、名前にドットを含む列になるのはなぜですか?#

それがネストを平坦化オプションです。"address": {"city": "London", "zip": "NW1"} のようなフィールドは 1 つのセルに有用に収まらないため、address.city と address.zip の列に展開されます——それぞれ Excel で個別にフィルタ・ソートできます。オブジェクト全体を単一の address セル内の JSON 文字列として保持したい場合は、このオプションをオフにしてください。

配列がセル内で ["math","logic"] と表示されるのはなぜですか?#

スプレッドシートのセルは 1 つの値を保持し、JSON の配列はネストした構造であるため、JSON テキストにシリアライズされてそのままセルに置かれます。これによりデータはロスレスに保たれ(何も削り落とされない)、後で解析することもできます。各配列要素を独自の行にしたい場合は、変換前に元の JSON を再構成してください(要素ごとに 1 レコード)。

行によってフィールドが違います。列はどうなりますか?#

コンバーターはすべての行をまたぐすべてのキーの和集合を、最初に現れた順で取得し、それをヘッダーとして使います。あるフィールドを欠いた行は、そのフィールドのセルが空になります。したがって、余分の manager フィールドを持つ行を追加しても、単に manager 列が増えるだけです——それを持たない行は空欄のままで、既存のものは何も動きません。

.xlsx を生成するためにデータはどこかにアップロードされますか?#

いいえ。解析・平坦化・SheetJS によるブック生成はすべてブラウザ内で動きます。ダウンロードはメモリ内のバッファから作られ、ブラウザの保存ダイアログに直接渡されます——バックエンドもネットワークリクエストもありません。