メニューを閉じる

テクノデジタルグループ

メニューを開く

2017.01.05

プログラミング

「Handsontable」でExcelライクにデータ編集・その1

こんにちは、ESです。

以前このブログでjqGridのご紹介をしています(「【Web】【javascript】「jqGrid」で少しリッチなテーブルを作成する 基礎編」、「【Web】【javascript】「jqGrid」で少しリッチなテーブルを作成する 応用編」)が、今回はWebページ上でExcelのように編集ができちゃうグリッド「Handsontable」をご紹介します、の第1回です。

Handsontable公式サイト

jqGridはその名のとおりjQueryが必要ですが、Handsontableにはいりません。
最低限、2ファイルだけでOKです。

まずGithubからソースをダウンロードします。
2017年1月現在での最新バージョンは0.29.2です。「Downloads」から圧縮ファイルをダウンロードして、適当なフォルダに解凍しましょう。
解凍したフォルダから作業フォルダへ必要ファイルをコピーします。

作業フォルダの構成はこのようにします。

このうち、index.htmlとscript.jsを作成していきます。

まずはごく簡単に、項目ベタ書きから。

index.html

script.js

index.htmlでscriptタグがヘッダの中にないのが気になる方は、jQueryを使って$(document).readyでどうぞ。

実行すると、こんな感じになります。

hot2

Handsontableの場合、こんなふうにグリッド上で直接編集を行うことができます。

hot3

行番号をつけたいなら、こう。

script.js(一部)

するとこうなります。

hot4

IDが編集されるのは困るから、読み取り専用にしちゃいましょう。

ちなみにこの状態だと見た目は変わりません。クリックしても編集できないだけです。

script.js(一部)

価格に数値以外が入力されるのはまずいよね、ということで。

script.js(一部)

自動でバリデーションチェックをしてくれます。さらに数値は自動的に右寄せ表示になります。

hot5

追加入力もできなきゃ。

script.js(一部)

新しい行のIDを入力したいのでIDの読み取り専用は削除して、代わりに数値用バリデーションチェックを入れました。
一番下に「minSpareRows」で指定した数だけ空行が表示されます。空行に何か入力されると、さらに空行ができます。
こんな感じ。

hot6

果物をアルファベット順に並べたいこともあったり……

script.js(一部)

「columSorting」をtrueにすると、該当列のヘッダをクリックでソートが可能になります。どの列でもできます。
1回クリックで昇順、2回クリックで降順、3回でソート解除です。
「sortIndicator」をtrueにすると、ソート時に昇順・降順を示す三角が該当列のヘッダに表示されます。

hot7

三角が表示されるとヘッダがせせこましいので広げましょう。

script.js(一部)

全列一気に広がりました。

hot8

列ごとに設定したいなら、こう。

script.js(一部)

hot9

他にもいろいろありますが、長くなりすぎるので今回はここまで。
次回はDBとの連携とかもやっていこうと思います。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事

SNS共有