急にGoがやりたくなったのですが、odsを読めるライブラリに使い方が書いてなくってtestから読み解かなければならなかったので、使い方のメモを残します。
ライブラリの導入
go get github.com/knieriem/odf
import
odfでなくて、その中のodsを使う。
import (
"github.com/knieriem/odf/ods"
)
open&read
f, err := ods.Open("test.ods")
if err != nil {
panic(err)
}
defer f.Close()
var doc ods.Doc
if err := f.ParseContent(&doc); err != nil {
panic(err)
}
sheet
Docの[]Tableがsheet。Nameで名前が拾えるので必要なsheetを拾う。
1つしかsheetが無いんだったらdoc.Table[0]でもいい。
for _, sheet := range doc.Table {
fmt.Print(sheet.Name)
}
データ
Strings()で表全部のデータが[][]stringで取得できる。intのフィールドも全部stringで返ってくるので、strconv.Atoi等で適当に変換する。
cells := sheet.Strings()