Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2020/07/25 OSC Niigata/Online LT; about xlsx2csv-go-CLI

2020/07/25 OSC Niigata/Online LT; about xlsx2csv-go-CLI

This LT is about my tool ; xlsx2csv-go-CLI .
https://github.com/naototty/xlsx2csv-go-cli

Naoto Gohko

July 25, 2020
Tweet

More Decks by Naoto Gohko

Other Decks in Programming

Transcript

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

    View full-size slide

  2. 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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  7. (☝ ՞ਊ ՞)☝ウェーイ

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide