github.com/tealeg/xlsx
を用いればいいみたいということがわかりました。
github
のページに記載してあるように動かします。ここではtest_draft.xlsx
を読み込むこととします。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| package main
import (
"fmt"
"github.com/tealeg/xlsx"
)
func main() {
excelFileName := "./test_draft.xlsx"
xlFile, err := xlsx.OpenFile(excelFileName)
if err != nil {
panic(err)
}
for _, sheet := range xlFile.Sheets {
for _, row := range sheet.Rows {
for _, cell := range row.Cells {
text := cell.String()
fmt.Printf("%s\n", text)
}
}
}
}
|
きちんと利用するにあたって調べたことをまとめます。
シート名は以下のようにして参照します。sheet.Name
にシート名が格納されます:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| package main
import (
"fmt"
"github.com/tealeg/xlsx"
)
func main() {
excelFileName := "./test_draft.xlsx"
xlFile, err := xlsx.OpenFile(excelFileName)
if err != nil {
panic(err)
}
for _, sheet := range xlFile.Sheets {
if sheet.Name != "Sheet1" {
fmt.Println(sheet.Name)
}
}
}
|
こんな感じになります:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| package main
import (
"fmt"
"github.com/tealeg/xlsx"
)
func main() {
excelFileName := "./test_draft.xlsx"
xlFile, err := xlsx.OpenFile(excelFileName)
if err != nil {
panic(err)
}
for _, sheet := range xlFile.Sheets {
for _, row := range sheet.Rows {
// 列ごとの処理。例えばこんな感じ
for _, cell := range row.Cells
// セル単位の処理
}
}
}
}
|
とりあえずメモでした。