kintone プラグイン「krewSheet」を使ってみたよ

krewってご存知ですか？

まずはこちらをご覧ください。これ、kintoneの画面なんです。
「えええ！？」っと衝撃を受けたので、今回はkrewSheetの機能をご紹介したいと思います。
![01.png](https://qiita-image-store.s3.amazonaws.com/0/102790/84bcc97c-f4bb-271f-b27d-3de2b33ae3a2.png)


# krewSheetとは
[公式HP](https://krew.grapecity.com/)から引用します。
> kintoneの一覧をExcelのように表示したり編集したりできるようにするプラグインです。
> Excel感覚だから、データの操作性や視認性を向上させることが自由自在。
> 誰でもカンタンにkintoneアプリを本格的な業務アプリに仕上げることができます。

# krewSheetの導入
## デモ環境で試す
案件管理や予算管理のサンプルが用意されています。
すぐに確認したい場合は[デモ環境](https://krew.grapecity.com/use-case/)がお勧めです。

## 自身の環境で試す
kintoneアプリだけでなく、krewSheetの設定もインポートできます。
自身の環境で動かしたい場合は以下の2ステップが必要です。
1. [kintone 開発者ライセンスの申請](https://developer.cybozu.io/hc/ja/articles/200929540#step3)
2. [krewSheet 無料お試し版の申請](https://krew.grapecity.com/trial/)
3. [krewSheet テンプレートの読み込み](https://krew.zendesk.com/hc/ja/articles/115013564027)

# krewSheetでできること
本当に多くの機能が実装されていますが、今回はその中でも「おおっ！！！」と思った機能を中心にご紹介します。

## 一括置換
[![https://gyazo.com/07cf3e1b0e6c3c06da3fef2dc96b0299](https://i.gyazo.com/07cf3e1b0e6c3c06da3fef2dc96b0299.gif)](https://gyazo.com/07cf3e1b0e6c3c06da3fef2dc96b0299)

一画面に表示されるレコード数の上限は500件で、501件以上のレコード数が表示対象の場合はページングで表示します。
置換機能はそのページ内のレコードが対象なので注意が必要です。
[詳細はこちら（krewSheet サポート > 仕様／制限事項 > ページング）](https://krew.zendesk.com/hc/ja/articles/115010830008)


## 関数、書式
関数の結果はkintoneのデータとして保持しないので、そこは注意が必要です。
つまり、画面表示時に計算するので、逆手にとって年齢計算などにも使えます。
[![https://gyazo.com/e3fde8ac860f77538b0129823014a7e5](https://i.gyazo.com/e3fde8ac860f77538b0129823014a7e5.gif)](https://gyazo.com/e3fde8ac860f77538b0129823014a7e5)
今回は関数と書式を使って〇〇歳と表示しました。
詳細画面には年齢フィールドはありませんが、一覧では表示されています。

設定画面はこんな感じです。画面がExcel過ぎて怖いです・・・

- プラグイン設定画面
![02.png](https://qiita-image-store.s3.amazonaws.com/0/102790/02abeeea-446a-d016-c79e-196d4220dd9c.png)

- 関数の設定
![03.png](https://qiita-image-store.s3.amazonaws.com/0/102790/5a1cd55a-bbb4-c7c9-4ff2-c82b7402c262.png)

- 書式の設定
![04.png](https://qiita-image-store.s3.amazonaws.com/0/102790/e5b77bf4-8fe2-a1fc-25ab-2b8b81410b15.png)



## Excelライクなデータ編集
### 一括編集
[![https://gyazo.com/01490a796a900208e354b0262355d9ff](https://i.gyazo.com/01490a796a900208e354b0262355d9ff.gif)](https://gyazo.com/01490a796a900208e354b0262355d9ff)

### 追加
[![https://gyazo.com/ddd1f9e5daeb6a9e21b0de83a9d83854](https://i.gyazo.com/ddd1f9e5daeb6a9e21b0de83a9d83854.gif)](https://gyazo.com/ddd1f9e5daeb6a9e21b0de83a9d83854)

## 集計行
Average関数を使って平均年齢を表示しました。
他にもCount、CountA、Sum、Max、Min関数が使えます。
![05.png](https://qiita-image-store.s3.amazonaws.com/0/102790/48f284c9-e728-97bc-553d-15d506aefe02.png)


## 列固定
[![https://gyazo.com/27518a26bb097e7c13afa115cfa11d18](https://i.gyazo.com/27518a26bb097e7c13afa115cfa11d18.gif)](https://gyazo.com/27518a26bb097e7c13afa115cfa11d18)

## お洒落な条件書式
[![https://gyazo.com/156d4a653c909f1a849fdaf6c5fbf53c](https://i.gyazo.com/156d4a653c909f1a849fdaf6c5fbf53c.gif)](https://gyazo.com/156d4a653c909f1a849fdaf6c5fbf53c)

## Excel出力
計算式も出力できます。添付ファイルはNGでした（添付ファイル名が出力される）。
[![https://gyazo.com/c5aa41732b7272b0d3857cff29b56788](https://i.gyazo.com/c5aa41732b7272b0d3857cff29b56788.gif)](https://gyazo.com/c5aa41732b7272b0d3857cff29b56788)

ちなみに、ページングの場合はこのように確認してくれます。至れり尽くせり
![06.png](https://qiita-image-store.s3.amazonaws.com/0/102790/9276f1ec-704a-3cf7-b86a-72238d76f357.png)

## 全画面表示
[![https://gyazo.com/3988e11d47484ea8c04f739bf45f4127](https://i.gyazo.com/3988e11d47484ea8c04f739bf45f4127.gif)](https://gyazo.com/3988e11d47484ea8c04f739bf45f4127)

# 注意事項
## 表示するレコード数が501件以上の場合
前述したとおり、ページ内のレコードのみが対象になる機能と全レコードが対象になる機能があるので注意が必要です。
[詳細はこちら（krew サポート > 仕様／制限事項 > ページング）](https://krew.zendesk.com/hc/ja/articles/115010830008)


## APIのリクエスト数が多そうに見えて、多くはない
レコード更新のタイミングは「保存」ボタンクリック時なので、最初に想像するほど多くはありません。

## 他の人と同時に編集してしまい、一括更新がエラーになった場合
すでにそのレコードが更新されていた場合、kintoneでは先勝ちで後から更新する人の処理がエラーになります。
[詳細はこちら（cybozu developer network - 安全に在庫管理を行うテクニック）](https://developer.cybozu.io/hc/ja/articles/201255224)

エラーが発生した場合は以下の2つの対応が考えられます。

1. ↓のように一行ずつ保存する
[![https://gyazo.com/385d2f5ee790bfebbb6b0f747409b820](https://i.gyazo.com/385d2f5ee790bfebbb6b0f747409b820.gif)](https://gyazo.com/385d2f5ee790bfebbb6b0f747409b820)

2. 画面をリロードして再度変更する
krewSheetではセルの内容をコピー&ペーストできます。
そのフィールドの更新が問題ないことがわかっていれば、コピー&リロード&ペーストもできちゃいます。

# 参考
- [製品TOP](https://krew.grapecity.com/)
- [マニュアル](https://docs.krew.grapecity.com/krewsheet/#krewsheettop.html)
- [ナレッジ](https://krew.zendesk.com/hc/ja)