オフィスでの仕事に徹底的に使われているのがExcelです。職人たちの手にかかれば、表計算のみならずあらゆる場面においてExcelが利用されます。メールでも送られ、修正されて、コピーして修正して…と多くの人たちに使われています。 その結果、多くのコピーとどれが最新で何が違うのか分からないExcelファイルに溢れかえります。そこで使ってみたいのがExcelCompareです。

ExcelCompareの使い方

ExcelCompareは2つのExcelファイルを指定して差分を抽出します。

$ excel_cmp spreadsheet.xlsx spreadsheet-2.xlsx 
DIFF  Cell at     Sheet1!B2 => '2016年6月26日' v/s '2016年7月26日'
DIFF  Cell at     Sheet1!C14 => 'カクヤスインタ-ネツトシヨツプ' v/s 'カクヤスインタ-ネットシヨツプ'
DIFF  Cell at     Sheet1!H14 => '14341.0' v/s '14000.0'
DIFF  Cell at     Sheet1!C17 => 'GITHUB.COM 4EL
 UNITED STATES 2.81' v/s 'GitHub.COM 4EL
 UNITED STATES 2.81'
DIFF  Cell at     Sheet1!H17 => '308.0' v/s '300.0'
----------------- DIFF -------------------
Sheets: [Sheet1]
Rows: [2, 14, 17]
Cols: [B, C, H]
----------------- EXTRA WB1 -------------------
Sheets: []
Rows: []
Cols: []
----------------- EXTRA WB2 -------------------
Sheets: []
Rows: []
Cols: []
-----------------------------------------
Excel files spreadsheet.xlsx and spreadsheet-2.xlsx differ

こんな感じでシート毎、セル毎に違う部分が抽出されます。ビジュアル的に出るのではなく、CUIで表示されます。なお、日本語も問題ありません。コマンドオプションとして、無視するセルの範囲や、ワークシートなどを指定できます。ムダに増えてしまったExcelファイルをチェックするのにぴったりでしょう。

ExcelCompareはJava製のオープンソース・ソフトウェア(MIT License)です。

na-ka-na/ExcelCompare: Command line tool (and API) for diffing Excel Workbooks