miau's blog?

Excelファイルの比較

Subversion を導入してから、ファイルをマージする機会が増えてきました。TortoiseMerge は日本語の対応が半端なので WinMerge を導入したのですが、こいつはプラグインを使っていろんなファイルを比較できたりして便利です。

今のプロジェクトでは Excel ファイルで設計書書くことが多いのですが、Excel 比較用プラグインにも色々あるので、それぞれどんな感じで差分表示するのかを比較してみました。




■変更内容

before変更前

after変更後

こんな感じで、
・varchar(60) → varchar(120) に変更
・変更セルの文字色変更
・変更行の背景色変更
・別のセルの書式変更
を行ってみました。

■TortoiseMerge 付属の diff-xls.vbs

TortoiseSVN のデフォルト設定で使われる差分ビューアです。

TortoiseMerge

OLE で CompareSideBySideWith() してるだけで、利用には Excel 2003 以降が必要です。
今回は変更箇所を自分でハイライトしてるのでわかりやすいですが、実際には差分を探さないといけないのでマージするのも大変だと思います。
ただ、どこに差異があるか把握した上で修正するのであれば、この方式が一番便利そうです。

■WinMerge 付属の CompareMSWordFiles.dll

TortoiseSVN 設定→外部プログラム→差分ビューア→高度な設定 から、.xls の設定を以下のように変更した状態。

wscript.exe "C:\Program Files\TortoiseSVN\Diff-Scripts\diff-xls.vbs" %base %mine //E:vbscript

C:\Program Files\WinMerge\WinMergeU.exe

WinMerge

セルの値を CSV 形式で出力してる感じ。
Last author とか Last save time とかも出るので、このあたり便利です。

xdocdiff WinMerge Plugin

amb_xdocdiffPlugin.dll とかいう名称。
OLE 等を使ってないので、他のものに比べると格段に高速です。
xdocdiff

各セルの値がタブ区切りのテキストとして表示されます。
通常の使用ではこれがいいんじゃないかと。

■ExcelToText.sct

WinMerge 日本語版で配布されているプラグイン。
ExcelToText

タブ区切りの表示で、xdocdiff と同じような感じです。
VBA のコードとかも表示してくれるとのことなので、そっち向きの人にはこれがいいのかも。


といったところで、フォーマットの変更を差分表示する方法がないことに気づきまして。プラグインを作ってみたんですが、次回はその話をする予定

・・・といっても、マニア向けなので期待しないで下さい。
posted at 21:55:37 on 2007-01-26 by miau - Category: General No Trackbacks - Permalink

TrackBack

このエントリにトラックバックはありません
現在トラックバックは受け付けていません。

Comments

miau wrote:

実際にマージする場合、diff-xls.vbs よりも ExDiff が便利そう。
ttp://www3.plala.or.jp/kazuasa/exdiff.html
ただ、コマンドラインから引数受け取れないっぽいから、そこが不便かも。WSH で自動化すればいいんだけど・・・気が向いたらやろう。
2007-02-08 08:22:09

shun wrote:

ツールごとの比較、面白いですねー。

ためになりました。ありがとうございます。

WinMergeは
・セルの装飾(背景色変更など)は検知してくれない
・でも、図形内の文字列変更は検知してくれる

ので重宝しています。
2007-11-29 14:56:02

miau wrote:

なるほど、図形ですか。そこまでは考慮してませんでした。
情報ありがとうございます。
2007-11-30 00:21:08

Add Comments

現在コメントは受け付けていません。
お手数ですが、 こちら のコメント欄にでも記載していただければと思います。