XLSXをJSONに変換
.xlsx を読み込んで JSON ドキュメントを得ます。アップロードは一切不要。ReoGrid がブラウザでファイルを解析し、toJson() がワークブック全体(全シート・スタイル・数式)をロスレスな ReoGrid JSON ドキュメントにシリアライズします。
完全な例
import { createReogrid } from '@reogrid/pro';
const grid = createReogrid('#grid', { licenseKey: 'YOUR-LICENSE-KEY' });
const input = document.querySelector<HTMLInputElement>('#file')!;
input.addEventListener('change', async (e) => {
const file = (e.target as HTMLInputElement).files?.[0];
if (!file) return;
await grid.loadFromFile(file); // .xlsx を解析・描画
const doc = grid.toJson(); // ワークブック全体 → ReoGrid JSON
const json = JSON.stringify(doc, null, 2);
console.log(json);
// ...クリップボードへコピー、ダウンロード、API へ POST など
});
<input type="file" accept=".xlsx" id="file" />
<div id="grid" style="width: 100%; height: 400px;"></div>
JSON をダウンロード
function downloadJson(doc: unknown, filename = 'workbook.json') {
const blob = new Blob([JSON.stringify(doc, null, 2)], { type: 'application/json' });
const url = URL.createObjectURL(blob);
const a = Object.assign(document.createElement('a'), { href: url, download: filename });
a.click();
URL.revokeObjectURL(url);
}
await grid.loadFromFile(file);
downloadJson(grid.toJson(), file.name.replace(/\.xlsx$/i, '.json'));
アクティブシートのみ
ワークブック全体ではなくアクティブなワークシートだけをシリアライズするには、ワークシート単位のライターを使います。
import { stringifyReoGridJson } from '@reogrid/pro';
await grid.loadFromFile(file);
const json = stringifyReoGridJson(grid.worksheet, { pretty: true });
あとで復元
const saved = localStorage.getItem('workbook');
if (saved) grid.loadJson(JSON.parse(saved));
メモ
- ロスレス。 ReoGrid JSON は xlsx が往復できるものに加えて ReoGrid 固有機能(カスタムセルタイプ、全条件付き書式ルール)も保持します。保存・復元にはこの形式を使ってください。
- 素のデータ行(
[{ name, price }, …])が欲しい場合は、XLSXをデータ行に変換を参照。 - Lite と Pro。 xlsx 読み込みは Lite でも可能ですが、Lite は 100 行 × 26 列を超えると切り詰めます。実務ファイルの変換は Pro で。
- すべてクライアント側で動作 — ファイルはブラウザから出ません。