読者です 読者をやめる 読者になる 読者になる

write ahead log

ロールフォワード用

golangでExcelファイルを読みだす

golang

Excelファイルの読み出しというのは業務アプリを作る際には避けられません. (そもそも業務アプリをgolangで作成できる会社なんてあるのかわかりませんが)

ということでExcelファイルを読みだしてみます.

利用パッケージ

以下のパッケージを使わせてもらいました.
ドキュメントもしっかりしていてとても良いです.

tealeg/xlsx

サンプルコード
package main

import (
    "fmt"
    "github.com/tealeg/xlsx"
)

func main() {
    xlFile, err := xlsx.OpenFile("test.xlsx")
    if err != nil {
        panic(err)
    }

    printAll(xlFile)

    fmt.Println("-----------------------")

    printCell(xlFile)
}

func printCell(f *xlsx.File) {
    sheet := f.Sheets[0]
    rows := sheet.Rows
    cell := rows[2].Cells[0]
    fmt.Println(cell.Value)
}

func printAll(f *xlsx.File) {
    for _, sheet := range f.Sheets {
        for _, row := range sheet.Rows {
            for _, cell := range row.Cells {
                s, err := cell.String()
                if err != nil {
                    panic(err)
                }
                fmt.Printf("%s", s)
            }
            fmt.Println()
        }
    }
}
テストファイル

こんな感じのExcelを作ります.

f:id:twinbird_htn:20160628231233j:plain

f:id:twinbird_htn:20160628231237j:plain

f:id:twinbird_htn:20160628231241j:plain

実行結果
testtest

これを読みたい
aaaabbbb
111122222
-----------------------
これを読みたい

簡単ですね.ライブラリ作者に感謝です.