ReoGrid ReoGrid Web

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 で。
  • すべてクライアント側で動作 — ファイルはブラウザから出ません。

関連

ニュースレター

開発の最新情報をお届けします

新しいリリース・機能追加・お知らせをいち早く受け取るには、
メーリングリストにご登録ください。