Excelファイルを扱うライブラリが多すぎてどれを使ったらよいかわからないので・・・
結論
データの読み込みだけなら xlsx
Excelのテンプレートに書き込むなら ExcelJS or xlsx-populate
ただし、ExcelJSはかなり多くのバグが放置されているので注意
TypeScript | 読み込み | 書き込み | スタイル設定 | スタイル保持 | 画像挿入 | セルコメント | |
---|---|---|---|---|---|---|---|
xlsx | ○ | ○ | ○ | ○ | |||
xlsx-js-style | ○ | ○ | ○ | ○ | ○ | ||
node-xlsx | ○ | ○ | ○ | ||||
ExcelJS | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
excel4node | ○ | ○ | ○ | ○ | |||
officegen | ○ | ||||||
xlsx-populate | ○ | ○ | ○ | ○ |
ダウンロード数、スター数などは以下を参考に。
調査メモ
xlsx(SheetJS)・SheetJS Pro
SheetJSからxlsxに名前が変更されたライブラリ。無料版のxlsx(SheetJS)と有料版のSheetJS Proがある。
無料版では読み込んだExcelのスタイルが消える、画像挿入などができない、かなり機能が制限されている。有料のSheetJS Proであればできるらしいが、メールで問い合わせが必要らしく料金も公開されていない。無料版は実質読み込み専用と考えたほうが良いかも。
xlsx-js-style
xlsxのフォーク。スタイルの設定ができるように機能追加されている。これを使っても読み込んだExcelのスタイルは消える。
スタイル機能を追加しているxlsxのフォークはほかにもxlsx-style、sheetjs-styleなどがあるが、xlsx-js-styleは最新のxlsxをフォークしている。
node-xlsx
xlsxのラッパー。データの入出力などの簡単な操作しかしないのであれば。
ExcelJS
xlxsに次いでダウンロード数が多いが800近いIssueがあり、更新停止中。画像挿入に使いたかったがメソッド引数の型定義が間違っていて指定できず。多機能ではあるがバグが多そうな感じ。これなら読み込んだExcelのスタイルは消えなかった。
excel4node
ファイルの生成に特化している。Excelファイルを読み込むことはできない。
officegen
Office Open XML形式でWord、Excel、PowerPointのファイルを生成できる。ファイルの読み込みはなし。
xlsx-populate
ワークブックの機能、スタイルをそのまま維持することに重点を置いているらしい。