Slide 1

Slide 1 text

イベント駆動開発?でできた xlsx2csv-go-cliと OSC Niigata Onlineまで OSC Niigata 2020 Online / LT session 2020/07/25 @naoto_gohko 郷古 直仁

Slide 2

Slide 2 text

LT presenter(Itʼs me) • Naoto Gohko / 郷古 直仁 (@naoto_gohko) • Cloud Service development divistion, GMO Internet Inc., • OpenStackでpublic cloudサービス • 最近の活動主体 • Japan OpenStack user会 / OSC onlineお⼿伝い(Zoom修⾏) • その他参加勉強会など • Rancher JP, PaaS, Serverless, SDNなど @MikumoConoHa

Slide 3

Slide 3 text

⼤学時代は⼭形の⽶ 沢(⼭形⼤学⼯学部) にいたので、新潟市、 ⻑岡市など出⾝の友 ⼈達が沢⼭いました (なにしてっがなぁ)

Slide 4

Slide 4 text

最近では、宮原さんと OSC(Open Source Camp)と称して コロナ前まで、 キャンプに出かけるなどやってい ました ここでも、新潟のお世話になるこ とに

Slide 5

Slide 5 text

なにせ「キャンプグッズ」と いえば新潟発のブランドが ⽼舗から新興まで、たくさん ありますからね

Slide 6

Slide 6 text

さてさてさて、 お集まりの皆さん、 OSC Niitaga 2020/Onlineも もう最後の⽅になりました

Slide 7

Slide 7 text

(☝ ՞ਊ ՞)☝ウェーイ

Slide 8

Slide 8 text

OSC Niitaga Online で LT申し込んだときに、 何やろうかなと

Slide 9

Slide 9 text

“xlsx2csv-go-cli” https://github.com/naototty/xlsx2csv-go-cli 作ったというより、 機能追加と修正してみたかな

Slide 10

Slide 10 text

なんとなく、名称から察する 感じですが、”*.xlsx” ファイル からcsvを⽣成するCLIです

Slide 11

Slide 11 text

https://github.com/naototty/xlsx2csv-go-cli

Slide 12

Slide 12 text

なんでこれを作ったか? 業務上、何かと”*.xlsx” ファイル に遭遇することがあり、shell scriptでライトにスクリプトに組 み込んで利⽤する (ちょっと加⼯してansible inventory(hosts) fileにしたり)

Slide 13

Slide 13 text

以下を組み合わせて動作します。 xslxファイルを扱うgolangのライ ブラリ “github.com/tealeg/xlsx” csvを扱うライブラリ "encoding/csv”

Slide 14

Slide 14 text

実際には、以下からforkして、機能追加した ものです tgulacsi/xlsx2csv colinmollenhour/xlsx2csv

Slide 15

Slide 15 text

使い⽅ CLIですので README.md を詳しくは参照お願いします

Slide 16

Slide 16 text

wgetでリリースにおいてあるbinary取ってくる # << chmod +x で実⾏権限つける

Slide 17

Slide 17 text

なにも⼊れ ずに実⾏す ると、usage

Slide 18

Slide 18 text

delimiter指定 ex)“-d ʻ,ʼ” 区切り⽂字を 指定する tab区切りは “-d TAB” (ドキュメント 書き忘れたw。 後で書きます)

Slide 19

Slide 19 text

delimiter指定 + Excel tab指定( “-i <0,1,2,…>”) 0から表の数インクリメント (表の番号 : 0,1,2, … )

Slide 20

Slide 20 text

csvをstdoutではなく、ファイルに出⼒ “-o ”

Slide 21

Slide 21 text

今後考えていること(issue⽴てよう) • 表としてのHeaderの位置を指定できるようにする • 表としてのHeaderを外部から指定できるようにする • 他のtableファイル対応 • Google SpreadsheetなどCloud sheet, Libreofficeなど • Query表現の簡易対応 (like xo/xo, xo/usql) • HTTP(S)上にuploadされているファイルを直接stream(っぽく) で処理させる

Slide 22

Slide 22 text

OSC Niitaga 2020/Onlineに合わせ て「イベント・ドリブン」に ちょっとツールをリリースしてみ た話でした イベントに合わせてなんかリリースするとかとか、 が「イベント・ドリブン」という落ちでした