LoginSignup
406

More than 5 years have passed since last update.

Gitで管理しているExcelファイルの差分を見る

Last updated at Posted at 2015-04-07

動機

ExcelファイルをGitで管理しているときに、差分を見られると嬉しい。Git for Windows (msysgit)は、WordファイルやPDFファイルは差分を見られるように設定済で配布されているが、Excelファイルについては未対応。

できたこと

  • git diffでExcelファイルに加えた変更を確認してからgit commitできる
  • もちろん過去の履歴の差分も見られる
  • 行頭にシート名が含まれていて複数シートにも対応している

CUIでのExcelファイルの差分表示例
cui.png

GUI (Git Extensions)でのExcelファイルの差分表示例
gui.png

超便利!!!

使ったもの

手順

Go環境の構築

まずはGo言語の環境を構築します。といっても、.msi形式のインストーラををダウンロードしてきてインストールするだけです。.msiファイルのダウンロードは https://golang.org/dl/ から。

インストール後は、環境変数GOPATHにフォルダを指定します。ちなみにですが、環境変数の管理にはRapid Environment Editorがお勧めです。GOPATHはどこでもよいです。自分しか使わないPCなので、C:\gocodeフォルダをつくり、システム全体の環境変数として指定しちゃいました。

gopath.png

コマンドプロンプトでgoコマンドが通ることと、GOPATHが設定されていることを確認します。

> go version
go version go1.4.2 windows/amd64

> go env GOPATH
C:\gocode

git-xlsx-textconvの取得とビルド

コマンドプロンプトで以下のとおり実行します。

> go get github.com/tokuhirom/git-xlsx-textconv

%GOPATH%\bin\git-xlsx-textconv.exeが実行できることを確認します。

> %GOPATH%\bin\git-xlsx-textconv.exe
2015/04/07 22:24:53 Usage: git-xlsx-textconv file.xslx

Gitの設定

Gitで設定しなくてはいけないのは、いつものgit configgitattributesの2つ。リポジトリごとの設定でもいいのですが、これまた自分しか使わないPCなので、msysgitのグローバルな設定に施してしまいます。msysgitのグローバル設定はC:\Program Files (x86)\Git\etc配下においてあります。

C:\Program Files (x86)\Git\etc\gitconfig をAdministrator権限のテキストエディタで開き、以下を追記します。ここでは、%GOPATH%ではなく$GOPATHを使うのが正解の模様。

[diff "xlsx"]
    binary = true
    textconv = $GOPATH/bin/git-xlsx-textconv

C:\Program Files (x86)\Git\etc\gitattributes を同じくAdministrator権限のテキストエディタで開き、以下を追記します。

*.xlsx  diff=xlsx
*.XLSX  diff=xlsx

以上で終わりです。簡単で便利です。

TODO

簡単とはいえ手順が必要なのはいけてないので、msysgitの本家に貢献できないか考える。

ちなみに、msysgitのデフォルトのgitattributesには以下が指定されていて、これらのファイルの差分は特に設定なしに差分が取れる。

*.doc   diff=astextplain
*.DOC   diff=astextplain
*.docx  diff=astextplain
*.DOCX  diff=astextplain
*.dot   diff=astextplain
*.DOT   diff=astextplain
*.pdf   diff=astextplain
*.PDF   diff=astextplain
*.rtf   diff=astextplain
*.RTF   diff=astextplain

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
406