Jspreadsheet Pro版のトライアルを使ってみた

## はじめに

VALTES Advent Calendar　17日目を担当します。@d_mizunoです。

最近、有名なスプレッドシートライブラリ「Jspreadsheet」のPro版を試せるトライアルライセンスを利用しました。
無料版であるCE版との違いを実際に体感しながら、便利になった点を主にご紹介します。

## 動作環境

本記事の内容は以下の環境で動作確認を行っています。

Ruby 3.3.4

Rails 8.0

## 利用バージョン
Jspreadsheetで利用できるバージョンは、以下の通りです。
CE版：　v4.13.1
トライアル版：　**v11.11.2**

トライアル版で利用できるバージョンが11となっておりCE版よりも大きく更新されています。
また、使用期間として30日が設定されています。
※問い合わせを行えば延長が可能なようです。[FAQページ](https://jspreadsheet.com/faq)

## 1.トライアル利用のためのライセンス設定

Jspreadsheet Pro版のトライアルを使用するには、ライセンス情報を設定する必要があります。
手順としては以下のようになります。

1. [Jspreadsheet Proのサイト](https://jspreadsheet.com/) でトライアル登録を完了
2. 登録後、登録時に送付されたライセンス鍵を取得
3. ライセンス鍵を設定

コードの例が以下になります:
``` JavaScript
    // ライセンスキーを取得
    const licenseKey = "取得したキー情報";
```

## 2. 複数シート操作が可能に

Pro版は「複数シート」をサポートする機能が追加され、大規模データをシート分けして管理できるようになりました。

#### CE版の制約

CE版では単一のシートのみ操作可能で、複数のデータを分割するには別々にスプレッドシートを作成する必要がありました。
``` JavaScript
// CE版の使用例
var spreadsheet = jspreadsheet(document.getElementById('spreadsheet'), {
    data: [
        ["商品名", "価格", "数量"],
        ["リンゴ", 120, 10],
        ["バナナ", 100, 8]
    ],
});
```
#### トライアル版の場合

トライアル版では第一引数が「オブジェクト」として渡されるため、複数シートを操作できるようになっていました。
``` JavaScript
// Pro版の使用例
var spreadsheet = jspreadsheet(document.getElementById('spreadsheet'), {
    worksheets: [
        { name: 'Sheet1', data: [["商品名", "価格"], ["リンゴ", 120]] },
        { name: 'Sheet2', data: [["月", "売上"], ["1月", 3000]] },
    ],
});
```

第一引数から大幅に変更があったため、もともとCE版で使用していたコードにかなりの修正が必要でしたので注意が必要です。

## 3. 日本語入力が快適に

ユーザビリティとして地味ですがとても大きな変更です。

CE版にあった日本語入力時の不具合が解決され、スムーズな操作が可能になりました。

#### CE版の課題

CE版では、日本語を入力すると、先頭の1文字が半角英字になる問題がありました。

不具合例: 「あ」と入力すると「a」になる![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3944848/66c97ca1-dba3-2cc7-51cc-a50a9b256dce.png)


#### トライアル版の改善

IMEの変換結果が正しくセルに反映されるため、ストレス無しに使用できます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3944848/406edbdc-71af-518e-e4f4-3755089af157.png)

## 4. 特定のセルをスクロール固定可能に

大量データの操作や確認が便利になる「行や列の固定」機能がトライアル版で追加されました。

#### CE版の制約

CE版ではスクロールすると、見出しや重要なデータが非表示になってしまいました。
``` JavaScript
// CE版の使用例
var spreadsheet = jspreadsheet(document.getElementById('spreadsheet'), {
    data: [
        ["商品名", "価格", "数量"],
        ["リンゴ", 120, 10],
        ["バナナ", 100, 8],
    ],
});
```

#### トライアル版の固定機能

トライアル版では行や列の固定が簡単に設定できます。
特定のセルや列を常に画面上に表示したままでスクロールできるため、大量データの操作が快適になります。
``` JavaScript
// トライアル版の行・列固定設定例
var spreadsheet = jspreadsheet(document.getElementById('spreadsheet'), {
    freezeColumns: 1, // 左側1列を固定
    freezeRows: 1,    // 上部1行を固定
    data: [
        ["商品名", "価格", "数量"],
        ["リンゴ", 120, 10],
        ["バナナ", 100, 8],
    ],
});
```

## 5. 複数のセルを一括選択してコピー＆ペーストが可能に

トライアル版では複数のセルをまとめて選択し、他のスプレッドシートやアプリケーションにコピー＆ペーストできる機能が追加されました。

#### CE版の制約

CE版ではセル単位のコピー＆ペーストしかサポートされておらず、大量データの移動は手間がかかるものでした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3944848/9571c0a0-5203-7e3c-df44-fdec55fe53c3.png)

#### トライアル版の改善

複数選択後に一括コピー＆ペーストが可能になり、作業効率が飛躍的に向上します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3944848/1534d019-774b-0b38-5b5f-e61ecbdc8529.png)

## まとめ
トライアル版ではCE版と異なり、様々な点が改善されており
よりエクセルに近い動きが実現できるようになっていました。

ライセンスの費用はそれなりにかかりますが、試用期間のうちに利便性を体験してもらうのも一考の余地ありだなと感じました。