2020/08/03
これまでのWindows版に加えて、macOS版を試験リリースしました。
Excelファイル比較ツール「方眼Diff」1
こんな感じです。
※財務省が公開している2018年度および2019年度の一般会計歳入予算明細書を比較しています。
できること
- 2つのExcelファイルの差分を取ることができます。
- 元のExcelファイル(をコピーしたもの)に対して、差分箇所に色を付けて表示します。加えて、差分箇所をテキストでレポートすることもできます。
- 行や列の挿入/削除を自動で検出することができます。キー列やキー行を指定する必要はありません。
- Excelブック同士または特定のシート同士を比較することができます。Excelブック同士を比較する場合は、シート名が似たもの同士を自動でマッチングして比較します。
- コマンドラインから起動することができます。すなわち、TortoiseGit等のバージョン管理ツールと組み合わせて使用することができます。
まだ初期開発版ではありますが、単純なExcelファイルに対しては実用レベルに手が届いたと判断し、公開することにしました。
ダウンロードや詳しい説明はコチラからどうぞ。
https://hogandiff.hotchpotch.xyz/
動作の紹介
実装
「方眼Diff」では次の要素技術およびアルゴリズムを採用しています。
- JavaFX : GUIの実装に利用
- Apache POI : Excelファイルの読み書きに利用
- イベントモデルAPIをファイル内容の読み取りに利用
- ユーザーモデルAPIを.xls形式の結果レポート生成に利用
- SAX : .xlsx/.xlsm形式のExcelファイルからのシート名取得に利用
- StAX : .xlsx/.xlsm形式の結果レポート生成に利用
- exewrap : .jarファイルを.exeファイルにラップして配布するのに利用
- 組み合わせ最適化問題の応用:
- diff計算にレーベンシュタイン距離の拡張と動的計画法を利用
- シート名同士の曖昧マッチングに貪欲法を利用
- Excelブック名同士の曖昧マッチングに最小費用流問題の解法を利用
追い追い、それぞれの要素に関する派生記事を書いていきたいと思います。
⇒ ぼちぼち書いています。
想い
システム開発であれ一般の事務であれ、日本ではExcelによるドキュメントが広く利用されています。
その一方で、Excelファイルにはdiff(変更差分)を取りづらい、バージョン管理システムとの相性が悪いという大きな欠点があります。
いくつかの無料diffツールがあるにはあります。しかしどれもイマイチしっくりこない。良さそうなものになると有料になってしまう。
だったら自分で作れば良いじゃない! ということで作ってみた次第です。
プログラミングによって、誰かが楽になる、ハッピーになる! 日本の生産性が上がる!! となれば、プログラマ冥利に尽きるというものです。
-
本当はもっと別の名前にしたかったのですが・・・ しっくりくる名前は既に使われちゃってるんですよね。トホホ ↩