脱Excel活動をし始めた

Excelは開くだけで重いし、勝手に自動保存するし、保存する度に応答なし状態になってハラハラさせられたり、いきなりExcel自身が強制終了したりして本当にひどい。でも仕事で使わざるを得ない。
そこで最近考えているのが脱Excel。脱Excelとは、Excelを使わないで目的を達することを指しています。

テーブルの論理名と物理名の一覧.xlsで脱Excel

一覧ってセルの計算しないし、Excelで管理するには冗長だと思ってます。それに使い勝手もイマイチ。
例えば、論理名と物理名の名前解決をしようとブック内検索をしても、[説明]カラムにヒットしたり、
とにかく効率が悪い。
そこで作ったのが論理名と物理名を変換するHTMLファイル。
テキストフォームにテーブル名の論理名か物理名を入力すると、下に配置しているテキストエリアに変換結果が表示するようになっている。

工夫した点

・ 変換時に完全一致や部分一致という項目を選択できるようにした。(Excelの代用なので)
jQueryはGoogleApiesからダウンロードするようにしている。(同じチームの人が簡単に使えるように、外部のローカルにあるjsファイルは参照していない。)
・ 肝心のテーブル一覧データについては、HTMLファイル内に"display:none"で埋め込んでいる。(一覧の情報なので、コピペするのはそこまで時間はかからなかった。)
・ keypressイベントで変換を実行。(スムーズな変換。)
・ 入力値の物理名と論理名を自動判断できるようにした。

チームの人に展開すると使ってくれているようだ。作ってよかった。

テーブル情報.xlsで脱Excel

開発対象アプリケーションで、テーブルを所有している機能が複数ある場合、機能毎にブックができて、その中にテーブル情報のシートがある構成になる。
この構成ではブックを複数開いてしまうことがほとんどだ。ブックを開くだけで時間がかかるのに機能毎にブックを開く時間がとてもかかってしまう。
そこで作ったのがテーブル定義書を解析し、HTMLに書き出していくHTMLファイル。

読み込むテーブル定義書については、XMLスプレットシートに変換する必要がある。
このXMLスプレットシートをjQueryの$.getメソッドで定義書を読み込み、解析して、HTMLに書き出している。

ちなみに、どうやってExcelに書いている文字を読み取るか結構考えた。CSVだとセル内改行によって、CSVに書き出した時に1レコードと1行が一致しないので、最終的に今のXMLに落ち着いた。

工夫した点
  • テーブル名のリンクをページ上部に書き出し、クリックすると該当の定義書位置にジャンプできる。

作ったみた感想

  • XMLの読み込みでIEが言う事聞かなかったけどなんとかなった。
  • HTML5APIをふんだんに使いたかったのだけどIEでの利用を想定していたので不使用。
  • jQuery力あがった気がする。
  • ブラウザの開発ツール便利。
  • 作ったものが使ってもらえる喜び
  • 必ずしもExcelが悪とは言えない。使える場面もある。
  • jsの連想配列に.lengthはない。

作ってから知ったのだけど、読み込んだ後にこのHTMLファイルを保存するとDOM操作後の状態で保存される。なので、XMLの読み込みは一度だけでいい。便利。


ExcelPONPON落ちていくので、本当になんてプロジェクトに入れられたんだと絶望したけどなんとかなる気がする。
あ、これらのツールは昼休みとか空き時間に少しづつ作ってました。
さあ脱Excelをしよう。