村正
概要
Excel/CSVのシートから、空行で区切られた複数の表を検出し、それぞれをタイトル行、ヘッダー行、データ行に分けて読み取るJavaSrcipt用ツール。
印刷物の表のようなレイアウトでデータが配置されたシートでは、1枚に複数の表が並び、表の上にタイトルが書かれていることが多い(いわゆるネ申エクセル)。 村正は次のルールで、こうしたシートを機械が扱える矩形のデータとして読み込む:
- 空行で区切られた行のまとまりを、表の候補(ブロック)とみなす
- ブロックの先頭行が、ブロック内の最大列数より少なければタイトル行とみなす
- タイトルの次の行をヘッダー行とみなす。正規表現でヘッダー行を指定することも、ヘッダーなしと指定することもできる
開発経緯
資源評価事業をドメインモデリングに基づいてアプリケーション化する三日月宗近プロジェクトで、査読者用のデータアップロード機能が必要だった。 このような外部との連絡部分では、自アプリのモデルを外部のデータ型式から守るためのいわゆる「腐敗防止層」が必要となる。 腐敗防止層のうち、Excelファイルからデータを取り出す部分を、汎用パッケージとして切り出した。
現在の状態
npmで公開中(“muramasa” ではまずいのでさすがにまともな名前をつけた): @rindrics/tblparse
基本的にはnpmパッケージだが、GUIから使えるデモサイトを下記でホストしている: