gitにExcelファイルあげちゃった。そして差分も見たいです。

2015年12月24日

gitにExcelファイルあげちゃった。そして差分も見たいです。

エンジニア以外にもgithubを使い出しているところが増えつつありますが、

このような要望が少なくありません。

エンジニアとしては、それはExcelがちょっと・・・という感じかもしれませんが

非エンジニアとしてはExcelが自分の仕事の表現手段、というか

やはり操作感は他のツールとは別格かと思います。

そこにエンジニア目線で別のツールを押しつけるのもどうかと思ったりもします。

※別のツールを提供した方が効率が上がるケースももちろんあるので、その場合は提供した方が良いです。

ということで、Excelファイルをgitにあげて管理したい、しかも差分も見たいと言った場合

gitの設定を少しいじると雑ですが差分が出るようにはなります。

macの場合

前提条件

GOでコンパイル出来る環境

使用するもの

https://github.com/tokuhirom/git-xlsx-textconv

インストール

mkdir ~/git-xlsx-textconv
export GOPATH=~/git-xlsx-textconv
go get github.com/tokuhirom/git-xlsx-textconv
echo "export PATH=$PATH:~/git-xlsx-textconv/bin"

~/.gitconfig

を開きます。

[[diff "xlsx"]]
textconv = git-xlsx-textconv

git cloneしたリポジトリの直下に

.gitattributeファイルを作成します。

*.xlsx diff=xlsx

を追記します。

これでxlsxの結果が比較できるようになりました。

row追加

[hoge@localhost repo][master]$ git diff 3377e46819bbe6abb2a46fb43a5989c87cd714e3^..3377e46819bbe6abb2a46fb43a5989c87cd714e3
diff --git a/sample.xlsx b/sample.xlsx
index aaa1203..51aa625 100644
--- a/sample.xlsx
+++ b/sample.xlsx
@@ -2,3 +2,4 @@
 [テストシート1] test2
 [テストシート1] test3
 [テストシート1] test4
+[テストシート1] test5

row削除

[gendosu@localhost repo][master]$ git diff 5855f51a6c8ea901016f1961cc5bcf5ecc09f976^..5855f51a6c8ea901016f1961cc5bcf5ecc09f976
diff --git a/sample.xlsx b/sample.xlsx
index 51aa625..645bd53 100644
--- a/sample.xlsx
+++ b/sample.xlsx
@@ -1,5 +1,4 @@
 [テストシート1] test1
 [テストシート1] test2
 [テストシート1] test3
-[テストシート1] test4
 [テストシート1] test5

シート名変更

[gendosu@localhost repo][master]$ git diff 8ccb9789f8ffc6ac62e8464664a9e9c02d770989^..8ccb9789f8ffc6ac62e8464664a9e9c02d770989
diff --git a/sample.xlsx b/sample.xlsx
index 645bd53..183f7dc 100644
--- a/sample.xlsx
+++ b/sample.xlsx
@@ -1,4 +1,4 @@
-[テストシート1] test1
-[テストシート1] test2
-[テストシート1] test3
-[テストシート1] test5
+[testシート1] test1
+[testシート1] test2
+[testシート1] test3
+[testシート1] test5

GOがコンパイル出来ない環境、Windows環境の場合のは、後日

gitExcel

Posted by GENDOSU