SheetJS

JavaScriptでExcelデータを扱うためのライブラリです。

ライブラリ読み込み

<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>

ワークブック操作関連

ワークブックを作成

let wb = XLSX.utils.book_new();

シートを作成

// データが配列の配列の場合
let sheet = XLSX.utils.aoa_to_sheet(aoa_data);

ワークブックにシートを追加

XLSX.utils.book_append_sheet(wb, sheet, 'シート名');

シート内のデータがある範囲を取得

let range = wb.Sheets['シート名']['!ref'];
// range = 'A1:C2'

個別のセルの値

let tgt_cell = wb.Sheets['シート名']['B1'];
// tgt_cell.v → セルの素の値

エクセルを出力

処理したタイミングでエクセルDLが始まる書き方

XLSX.writeFile(wb, '出力したいエクセルファイル名.xlsx');

aタグにDLファイルをリンクする書き方

let wb_out = XLSX.c(wb, {bookType:'xlsx', bookSST:false, type: 'array'});
// type は Output data encoding(あとでちゃんと調べる)

let blob = new Blob([wb_out], { type: 'application/octet-stream'});

// aエレメントに dl_link という id がふってあるとして。
document.getElementById("dl_link").href = window.URL.createObjectURL(blob);
document.getElementById("dl_link").download = 'エクセルファイル名.xlsx';