Go
golang
Go2Day 22

Go言語でExcelアートを作成する

この記事はQiitaアドベンドカレンダーのGo2 22日目の記事です。

昨年のアドベントカレンダーではExcelをGoで出力するライブラリとして
exclを作った話を書きました。今回は書くことがあまりにもなかったので
ネタのツールとしてexclライブラリを使用してExcelアートを
書き出すプログラムgo-exclartを書きました。

go-exclartとは

png, jpegファイルを読み込んでExcelアートを作ってくれる
何の役に立つのかわからないけど私が作ってみたかったという自己満足のツール

Excelアートって?

Excelの表計算ソフトとしての意味を完全に否定した芸術作品(Excelなどただの方眼紙である!)
ドット絵で書くパターンとシェイプを使用して書くパターンがある。
参考

インストール方法

$ go get -u github.com/loadoff/go-exclart

ちょっと時間がかかるかも。。。
時間がかかって気になる場合は-vをつけてみてください。

使い方

go-exclart -i image.png -o output.xlsx

-i イメージファイルパス(png, jpegのみ対応) 必須
-f すでに存在するExcelファイルパス(指定しない場合は新規でExcelファイルが作成される)
-o 出力するExcelファイル(指定しない場合はoutput.xlsxファイルがカレントディレクトリに出力される)
-sheet 出力するシートを指定する(指定がない場合はSheet1に出力される)
-row 出力開始箇所の行番号(1から)(指定がない場合は1)
-col 出力開始箇所の列番号(1から)(指定がない場合は1)

Gopherくんの画像をExcelアートにしてみる

gopher.jpg

$ go-exclart -i gopher.jpeg

出力結果、Excelファイル

excel.png

何か役に立つの?

今の所役に立つ場面が思いつきません。
誰か思いついたら教えてください!

画像貼り付けたらいいんじゃない?

いや、至極真っ当なご意見です。
やってみたかったんです。ただそれだけなんです。
許してください。
(Excelファイル自体の大きさも画像を貼る方が小さいサイズになるのでいいとこ無し)

作ってみた感想

  • ツールを作るにあたって、exclライブラリの改善を行ったのでドックフード大事
  • イメージファイル操作が思いの外簡単でGo言語やっぱり優秀
  • xmlのライブラリ不具合については根が深いのかまだ直る気配無し(いや実際根が深くてどう直すのか難しそう)

問題点

大きいファイルになればなるほど
びっくりするくらい時間がかかるので何か対策を考えたいです。

Gopherの画像について

GoのマスコットのGopherの原作者はRenee Frenchさんです。