ToolActToolAct

Excel to JSON 変換ツール

Excelファイルをアップロードして、スプレッドシートデータをJSON形式に変換

Excelファイルをここにドラッグ&ドロップ、またはクリックして選択

Excel to JSONとは?

Excel to JSONは、Microsoft Excel(.xlsx/.xls)スプレッドシートデータをJSON(JavaScript Object Notation)形式に変換するオンラインデータ変換ツールです。

Excelは世界で最も人気のあるスプレッドシートソフトウェアで、データ保存、分析、レポート作成に広く使用されています。JSONは、現代のWebアプリケーションやAPIで最も一般的に使用されるデータ交換形式で、明確な構造と簡単な解析が特徴です。

このツールを使用すると、ExcelスプレッドシートデータをJSON配列に素早く変換でき、プログラミング、データ分析、Web開発に便利です。すべての処理はブラウザ内でローカルに行われ、データの安全性が確保されます。

使い方

使い方

  1. アップロードエリアをクリックするか、Excelファイル(.xlsx、.xls形式に対応)をドラッグ&ドロップしてください
  2. 複数のシートがある場合は、ドロップダウンメニューから変換するシートを選択してください
  3. 最初の行をJSONオブジェクトのフィールド名として使用するかどうかを選択してください
  4. フォーマット済みのJSONデータが自動的に生成され、コピー可能な状態になります

スプレッドシートに関する注意

  • JSONを使用する前に、選択したシート、ヘッダー行、結合セル、空行、日付形式を確認してください。
  • スプレッドシートでは表示形式と生の値が混在することがあるため、変換後に数値と日付を確認してください。

利用シーン

ワークブックのシートをJSONに変換して開発に活用する.xlsxまたは.xlsのワークブックを取り込み、ワークシートを選択してJSONに変換することで、モックデータ、シードデータ、ドロップダウンの選択肢、ローカライズの下書き、APIのサンプルなどに活用できます。ワークブックの読み込みと解析はすべてSheetJSライブラリを介してブラウザ内で行われるため、顧客データや人事データ、社内経理のシートが変換中にデバイス外に送信されることはありません。
1行目をオブジェクトキーにするかどうかを制御する「1行目をヘッダーとして使用」を切り替えることで、列名をキーとしたオブジェクト配列と、列位置でインデックスされた配列出力を選択できます。行数とフィールド数の表示で、想定外の空列やシート選択ミスを検知できます。実際の出力先に貼り付ける前の、管理された中間ステップとして有効です。
小規模データのシート解析をローカルで完結させるページはブラウザでワークブックを読み込み、出力を直接コピーできるようにします。確認可能なシート向きの機能であり、巨大ファイル、数式の再計算、マクロ、ピボットキャッシュ、保護されたワークブックのロジックには対応していません。JSONを正式なデータとして扱う前に、出力先システムで簡単な整合性チェックを実行してください。
数式の値と保存された文字列を見分けるSheetJSはブラウザ内で数式の最後にキャッシュされた値を返すため、計算された合計が並ぶ列はJSON上では単なる数値として表示され、キャッシュが古いセルはExcelの現在の表示と一致しないことがあります。出力を正式なデータとして扱う前に、想定外のゼロや一致する文字列をスキャンし、最後の保存後に数式が追加された場合はワークブックを再保存してください。
スキーマが壊れる前にヘッダー行を確認する「1行目をヘッダーとして使用」がオンの場合、重複または空白の列名は無効なJSONキーを生成し、一部のキーは自動的にリネームされることがあります。JSONを開いて「undefined」や数値サフィックスを検索し、キーの安定性が求められる場合(特にTypeScriptのインターフェースやGraphQLスキーマの生成元など)は、ソースシートを修正してください。

仕組み

現代の.xlsxワークブックはECMA-376 / ISO/IEC 29500(Office Open XML標準)で定義されたSpreadsheetMLファイルである。.xlsx拡張子はZIPコンテナであり、内部のエントリはxl/worksheets/sheetN.xmlのXML文書で、文字列はxl/sharedStrings.xmlの共有文字列テーブルに格納され、セル型はt属性で宣言される(s = 共有文字列、n = 数値、b = 真偽値、str = インライン文字列、d = ISO 8601形式の日付)。ページはFileReader.readAsArrayBufferでアップロードされたFileを読み込み、ArrayBufferをSheetJS(xlsx)に渡す。XLSX.read(buffer, {type: 'array'})はワークブックオブジェクトを返し、そのSheetNames配列がシートセレクタを制御し、XLSX.utils.sheet_to_json(sheet, options)はセルグリッドを走査してオブジェクトの配列(ヘッダー行をキーとする)またはheader: 1を渡した場合の配列の配列を生成する。 レガシーな.xlsはバイナリBIFF8形式(Excel 97-2003)であり、SheetJSは同じread()エントリポイントでtype: 'binary'(FileReader.readAsBinaryString用)または'array'(バイト読み取り用)でデコードする。両形式のセル日付値はシリアル番号として格納される(Excelでは1900年からの日数で、1900-02-29の閏年バグにより1900-03-01以前の日付が1日ずれる。Mac版Excelでワークブックのdate1904フラグが設定されている場合は1904-01-01からの日数)。JavaScript Dateへの変換は、閏年バグを考慮した上で1900システムでは (serial - 25569) * 86400 * 1000 ミリ秒でUnixエポックからの値となる。数式はf属性に格納され、SheetJSは最後にキャッシュされた結果をvに報告する。ワークブックが再計算を行わずに保存されたツール(一部のスクリプトによるエクスポートなど)では、vが欠落または陳腐化している可能性がある。 最初の行をヘッダーとして使用する場合、重複または空白のヘッダーセルはSheetJSにキーのスキップまたは自動リネーム(例:__EMPTY、__EMPTY_1)を強制し、下流のJSON契約を壊す。結合セル範囲(worksheet/mergeCellsで宣言)は左上アンカーにのみ値を公開し、結合された末尾セルにはundefinedを出力するため、結合されたタイトル行は1つの値を持つレコードとN - 1のスパースレコードを生成する。数十メガバイトを超えるワークブックでは、同期的なXLSX.read()パスがUIスレッドをブロックする可能性がある。ストリーミングの代替手段として、解析をWeb Workerに移動してメインスレッドの応答性を維持する方法がある。

  • .xlsxはXMLのZIPコンテナ(ECMA-376 / ISO/IEC 29500);.xlsはバイナリBIFF8形式;SheetJS XLSX.read(buffer, {type: 'array'})はFileReader.readAsArrayBuffer経由で両方に対応する。
  • sheet_to_jsonのオプション:header: 1は配列の配列を返す;header: 'A'はスプレッドシートの列文字を使用;defval: nullはスパースセルをキーの削除ではなくnullで埋める;raw: falseはExcelの表示フォーマットを適用する。
  • Excelの日付シリアルは1900-01-01からの日数(1900-02-29の閏年バグ付き;Macの1904日付システムでは1904-01-01からの日数);JS Date ms = (serial - 25569) * 86400000(Unixエポックから)。
  • 重複または空白のヘッダーセルは自動リネームされたキー(__EMPTY、__EMPTY_1)になるか、サイレントに衝突する;スキーマに依存する前にこれらの文字列を検証すること。
  • 結合セル範囲(worksheet.mergeCells)は左上アンカーにのみ値を公開する;結合内の末尾セルはundefinedとなるため、結合されたタイトル行は値を持つ1レコードと空フィールドのN-1レコードを生成する。
  • 数式セルは式をfに、最後にキャッシュされた結果をvに格納する;再計算せずに保存するツールはvを陳腐化または欠落させ、SheetJSはvをそのまま返す。
  • 約10 MB超のワークブックではXLSX.readをWeb Workerに移動すること;同期的な解析パスはrequestAnimationFrameをブロックし、大きなシートでタブを数秒間フリーズさせる可能性がある。

使用例

従業員シートを JSON オブジェクト配列に変換

Excel の行 (シート Staff):
id | name    | dept       | salary
1  | Alice   | Engineering| 8500
2  | Bob     | Sales      | 6200

JSON 出力:
[
  { "id": 1, "name": "Alice", "dept": "Engineering", "salary": 8500 },
  { "id": 2, "name": "Bob",   "dept": "Sales",       "salary": 6200 }
]

複数シートのワークブック (orders.xlsx)

ワークブックのシート: ["Customers", "Orders", "Products"]
対象シートを選択: Orders
先頭行をヘッダーとして使用: order_id, customer_id, total, date

結果: 1,284 行を JSON オブジェクトに変換
末尾の空セルは空文字列ではなく null になる

Excel の日付セルを ISO 8601 文字列に変換

セル A2 (Excel で日付として書式設定): 46173  (Excel のシリアル値)
Excel での表示: 2026-06-01

JSON 出力:
{ "order_date": "2026-06-01T00:00:00.000Z" }

備考: Excel は日付を数値のシリアル値として保持しますが、本ツールは ISO 文字列に正規化します

スペースや漢字を含むヘッダー

ヘッダー行: "Order No." | "客户姓名" | "金额 (USD)"

JSON のキーはそのまま保持されます:
{
  "Order No.": "A-1024",
  "客户姓名": "王小明",
  "金额 (USD)": 199.50
}

よくある質問

アップロードした Excel ファイルはサーバーに送信されますか?

いいえ。.xlsx、.xls、.csv ファイルは SheetJS を使ってブラウザ内で解析されます。バイトデータがデバイスを離れることはありません。ファイル読み込み時にネットワークタブを確認することで、ご自身で確認できます。

Excel のどの機能が変換後も保持されますか?

セルの値、日付(オプションにより ISO 文字列または Excel シリアル番号)、数値、ブール値、テキストが保持されます。グラフ、画像、条件付き書式、数式(数式自体ではなくキャッシュされた値が保持される)、コメント、結合セルは省略または簡略化されます。

すべてのシートが変換されますか?

選択したシートだけが変換されます。シートのドロップダウンからエクスポートするシートを選んでください。複数のシートが必要な場合は、1 つずつ変換してください。

ヘッダーと行はどのように JSON にマッピングされますか?

「最初の行をヘッダーとする」をオンにすると、ヘッダーセルをキーに持つオブジェクトの配列が出力されます。オフの場合はセル値の配列の配列になります。空のセルは出力で null になります。

日付はどのように扱われますか?

Excel は日付をシリアル番号(1900 年からの日数)として保存します。このページではデフォルトで ISO 8601 文字列(2026-06-13)に変換します。後で Excel に再インポートする際に便利な「raw」モードに切り替えるとシリアル番号のまま保持できます。時刻のみのセルは「T14:30:00」のような文字列になります。

数式はどう処理されますか?

数式は評価されず、Excel が最後に保存したキャッシュ値のみが使われます。最新の数式結果が必要な場合は、Excel でファイルを開いて再計算(F9)し、保存してから再度アップロードしてください。

ファイルサイズの上限はありますか?

ブラウザのメモリによって制限されます。最近のデスクトップなら数百 MB のワークブックまで処理可能です。100 万行を超える非常に大きなファイルの場合は、ブラウザがメモリ不足になるため、デスクトップのスクリプトツール(Python pandas、Excel Power Query)をご利用ください。

関連ツール

CSV to JSON 変換ツール

カスタム区切り文字と最初の行をヘッダーとして使用するオプションをサポートする無料のオンラインCSV to JSONコンバーター。表形式データを素早くJSON形式に変換。

Excel to SQL 変換ツール

オンラインExcel to SQLコンバーター。.xlsxおよび.xls形式に対応、複数シート選択対応。スプレッドシートデータをローカルでSQL INSERT文に変換。

JSON フォーマットツール

オンラインJSONフォーマットツール。シンタックスハイライト、エラー検出、圧縮・美化をサポート。ワンクリックでJSONデータを美化し、フォーマットエラーを素早く特定し、開発効率を向上させます。

JSON to TypeScript

オンラインJSON to TypeScriptツール。インターフェース定義を自動生成。ネストオブジェクト、配列、ユニオン型対応、TypeScript開発を加速。

CSV to SQL 変換ツール

カスタムテーブル名、区切り文字、引用符スタイルをサポートするオンラインCSV to SQLツール。CSVデータを素早くSQL INSERTステートメントに変換し、データベースへのインポートを容易にします。

SQL フォーマットツール

オンラインSQLフォーマットツール。コード美化、圧縮、キーワード大文字小文字変換、シンタックスハイライトをサポート。ワンクリックでSQLステートメントを整理し、コード可読性を向上。