miau's blog?

Excel比較用WinMergeプラグイン(マニア向け)

前回の続き。

そんな感じで、書式の変更もチェックできる Excel ファイル用の WinMerge プラグインを作ってみました。

ExcelToSylk.sct

作ったといっても、ExcelToText.sct をちょっぴりいじっただけですが・・・以下詳細です。




■方針

とりあえず簡単そうな方法として、SaveAs() を使って XML やらなにやらで出力する方法を思いつきました。ところが、SaveAs() と一口に言っても、フォーマットは 49 種類くらいあったりします。

WinMerge 日本語版で配布されている ExcelToText.sct を適当にいじって色々確認してみましたが、
・変換結果がテキスト形式じゃない
・一時ファイル名が埋め込まれるので差分がわかりにくい(HTMLとか)
・スタイルの変更がわからない or わかりにくい(XML)
みたいな感じで、使えそうなのは少ないようで。

その中で一番しっくり来るのが SYLK 形式だったので、とりあえずこれでいってみる。

■SYLKって?

SYLK ってのは・・・情報がやたら少ないけど、この辺に情報が。

SYmbolic LinK (SYLK) - Wikipedia, the free encyclopedia

comp.apps.spreadsheets FAQ

MS独自の拡張に関してはさらに情報が少ないけど、使ってみた感じは Wikipedia の情報以外にこんなフィールドがあるらしい。

P record
;F
F で使う書式指定。
例)P;EMS Pゴシック;M220;SBIUS;L11
;EMS Pゴシック
フォントは MS Pゴシック である
;M220
フォントサイズは 11pt である
;SBIUS
スタイルは Bold、Italic、Underlined、Strike-through である
;L11
フォントの色は 11(赤)である(色の対応は下記画像を参照)

ただし、先頭の項目(M0)はデフォルトの書式を表し、ヘッダ部分でも使用される。
また、4番目の項目(M4)は自動的に bolD 扱いとなる?

F record
M
P;F で定義される書式のインデックス。
bolD、Italic の場合は別途 B、I も指定しないと整合性のエラーになる
S
背景色/パターンが指定されていることを示す

色見本はこんな感じ。

color guide

■比較結果

で、これで比較してみる。結果はこんな。

ExcelToSylk1

シートごとの書式指定が追加されていて(M7、M8に相当)、M7 は SB と書いてあるからこのフォーマットはボールド指定されている。M8 は L11 なので、色見本から赤色に指定されていることがわかる。
で、2行目(R2)にはさっき追加した M7 が、6行目(R6)には ;SS となってるので、背景色/パターンが追加されている・・・みたいな感じ。

ExcelToSylk2

値の変更以外に、スタイルの変更が入ってます。
各行に入ってる「S」は上述の通り背景色/パターンが指定されていることを示すもの。
文字色が赤に変更された箇所は、スタイルが M6→M8 に変わっています。


・・・とまあ、正直見やすいものじゃないですね。
でも「なんとなくこの箇所を変更してるんだなー」と目星をつけることくらいはできるのではないかと。

WinMerge のプラグイン仕様として、フィルタかけた後のファイル形式がテキストにしかできないのがちょっと弱いと思う。各シートを個別ファイルにして、フォルダ同士の比較にできれば、もう少し結果が見やすくなるはず。
あと、もう一段くらい処理をかましてやれば、もっと誰でも見れるような感じにできそうではある。でも需要もないだろうし、とりあえずこの状態で放置するつもり。
posted at 22:26:38 on 2007-01-26 by miau - Category: General No Trackbacks - Permalink

TrackBack

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

Comments

No comments yet

Add Comments

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