====== Jspreadsheet ======
JavaScript で Excel ようなスプレッドシートを実現するライブラリです。最近、「jExcel」から「Jspreadsheet」に名称変更しました。
下記3つの構成になっています。ここでは、Jspreadsheet CEについて説明していきます。
* 無償版(MITライセンス)の Jspreadsheet CE
* 有償版の Jspreadsheet Pro
* クラウド版の Jspreadsheet Cloud
==== 参照 ====
* [[https://www.tohoho-web.com/ex/jspreadsheet.html|とほほのJspreadsheet入門]]
* [[https://neos21.net/blog/2022/01/30-01.html|JS のみで Excel 風スプレッドシートが作れる Jexcel (Jspreadsheet) を試す]]
===== Handsontableとの違い =====
* 同じ作者のJsuitesというライブラリを使用する必要があります。
* JS配列、JSON、CSV、XSLXファイルからデータを読み取ることができます。
* loadData メソッドの代わりとして、setData メソッドに書き換えます。
* JSONのマッピングは、data 属性から name 属性に書き換えます。
* enterMoves オプションがないため、Enterキーで次のセルに移動できない。
* outsideClickDeselects オプションがない。
* fillHandle オプションの代わりに、selectionCopy オプションを使用する。 \\ 参照:[[https://github.com/jspreadsheet/ce/issues/996|Disable the dragging corner #996]]
* readonly 属性が true でも setValue で値をセットすると外れてしまう。 \\ セット後に instance.jexcel.getCell(cellName).classList.add('readonly'); を追加する
* 位置(x,y)からcell値(例 A1)を変換するには、jexcel.getColumnNameFromId([x, y]) を使用する。
* jexcel の名前を変数として使用すると、内部の jexcel.getColumnNameFromId 関数など使用できなくなる。
* デフォルトで列ヘッダーが表示される。列ヘッダーを表示有無の rowHeader オプションは無い。
==== readonlyの色を変える ====
デフォルトは薄い
.jexcel > tbody > tr > td.readonly
{
color:rgba(0,0,0,0.3)
}
もう少し濃くする。
最後の「0~1」がalpha値になります。「0」に設定した場合は完全に透明になります。また、「1」にした場合は透過されません。
.jexcel > tbody > tr > td.readonly
{
color:rgba(0,0,0,0.5)
}
==== 列ヘッダーを消す ====
hideIndex オプションは無いようなので、hideIndex() メソッドを実行する、または下記のCSSを使用する。
.jexcel colgroup col:first-child {
width: 0 !important;
}
[[https://github.com/jspreadsheet/ce/issues/288|Hide row number column #288]]