← TssGrid/例一覧

TssGrid 例: Excel(xlsx)出力 サンプル + ExcelJS

xlsx は zip ベースのバイナリ形式なのでコアには入れず(軽量を保つ方針)、サンプルで外部ライブラリ ExcelJS(MIT)と連携します。CDN を <script> で読むだけ=ノービルドのまま
CSV と違い、数値は“数値のまま”太字ヘッダ¥書式ヘッダ行固定列幅まで付けられます(Excelで集計・並べ替えがそのまま効く)。下のボタンで .xlsx をダウンロード。読込(取り込み)は excel-import.html

差し込み(要点)

// <script src="…/exceljs@4.4.0/dist/exceljs.min.js" integrity="sha384-…" crossorigin></script>
const wb = new ExcelJS.Workbook();
const ws = wb.addWorksheet('在庫');
ws.columns = [
  { header:'品名', key:'name',   width:18 },
  { header:'数量', key:'qty',    width:10 },
  { header:'単価', key:'price',  width:12, style:{ numFmt:'¥#,##0' } },
  { header:'金額', key:'amount', width:14, style:{ numFmt:'¥#,##0' } },
];
ws.getRow(1).font = { bold:true };                 // 太字ヘッダ
ws.views = [{ state:'frozen', ySplit:1 }];          // ヘッダ行固定
grid.getRows().forEach(r => ws.addRow({            // 数値は Number で入れる
  name:r.品名, qty:+r.数量||0, price:+r.単価||0, amount:(+r.数量||0)*(+r.単価||0),
}));
const buf = await wb.xlsx.writeBuffer();            // → Blob → ダウンロード