noldor's diary

調べたことのメモとよしなしごと

巨大なExcelファイルの比較

WinMerge + xdocdiffでExcelファイルを比較すると、巨大なファイルだと途中までしか比較できない(途中からなくなっている)という現象にでくわしました。

xdoc2txt

原因はxdocdiff内部で使用しているxdoc2txtでした。これがExcelからtextに変換しているのですが、600KBぐらい変換したところで打ち切られていました(原因は不明なので、行数やセル数の問題かもしれません)。

ExcelToSylk

ソースは公開されていないようなので他のプラグインを探したところ、ExcelToSylk.sctがありました。

http://miau.s9.xrea.com/blog/index.php?itemid=604

やっていることはExcelで開いてSaveAs()を使ってSylk形式で保存しなおしているだけですが、逆にいえばExcelまかせなので途中で切れるような不具合はまずありません。上記巨大ファイルは問題ありませんでした。
Sylk形式だと読みにくい場合はちょっと書き換えて別形式で保存、または小分けしてxdocdiff、もしくは別プラグインということになります。

ExcelToSylkの元ソースであるhttp://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html:WinMerge日本語版配布元の「http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html#downloads:Excelからテキストへの変換プラグイン」も利用できそうです。

問題点

xdocdiffとExcelToSylkの両方をインストールすると、どちらを使うか選択できません。使い分けるのはめんどうそうです。見習ってちょこっと書いてやれば良さそうですが*1、書くのは必要に迫られたらにします(やる気なし)。

*1:変換前にポップアップ出すとかかな?