AG Grid(Licenseはfreeのまま)でセルの値をクリップボードにコピーする方法
公開日:
更新日:
AG Gridのライセンスに関して
AG Gridには無料版と有料版の二種類があります。無料版では扱っていない機能がいくつか存在します。
その機能の中の一つにクリップボードへのコピー(Clipboard)が含まれています。
そのため無料版のままではセルの値をコピーできないのか?と思ったのですが一つの解決方法を教えてもらったので共有させて頂きます。
対応策:AG Gridテーブルの設定でreadOnlyEditをTrueにする
解決方法のステップとしては下記になります。
①テーブルを編集可能にする
まずはテーブルを編集可能にしてしまいます。
example.js
1const defaultColDef = useMemo(() => {
2 return {
3 editable: true
4 };
5 }, []);
6
7//途中省略
8
9 <AgGridReact
10 defaultColDef = {defaultColDef}
11 />
AgGridReact
コンポーネントにdefaultColDef
というpropsを渡します
defaultColDef
は全カラムに適用される設定です。ここでeditable: true
としてあげることでテーブルが編集可能になります。ただこれだけだとテーブルが編集可能になってしまいデータが自由に書き変わってしまいます。
デモ
②テーブルの設定で「readOnlyEdit」をTrueにする
example.js
1const defaultColDef = useMemo(() => {
2 return {
3 editable: true
4 };
5 }, []);
6
7//途中省略
8
9 <AgGridReact
10 defaultColDef = {defaultColDef}
11 readOnlyEdit={true}
12 />
最後はAgGridReact
コンポーネントにreadOnlyEdit
というpropsをtrueにして渡します。
こうすることでテーブルは「編集することはできるが値の更新ができない」状態になります。この状態だとセル内のデータをクリップボードにコピーすることが可能です。
デモ (readOnlyEdit適用後)
※参考記事: AGGrid公式サイト readOnlyEditの説明ページ
以上、AGGridテーブルを使用する際のTipsでした。
お役に立てましたら幸いです。
ご一読頂き、ありがとうございました。