1. 列迭代器
創(chuàng)建測(cè)試表 liubei.xlsx 文件 sheet1 內(nèi)容如下
序號(hào) | IP |
---|---|
1 | 10.10.118.128 |
2 | 10.10.118.129 |
3 | 10.10.118.130 |
…… | …… |
30 | 10.10.118.157 |
1.1 垂直獲取數(shù)據(jù)
- 語(yǔ)法
func (f *File) Cols(sheet string) (*Cols, error)
-
Cols
結(jié)構(gòu)體:
type Cols struct {
err error
curCol, totalCols, totalRows, stashCol int
rawCellValue bool
sheet string
f *File
sheetXML []byte
}
- 語(yǔ)法示例
cols,_ := f.Cols("Sheet1")
- 完整示例
見(jiàn)下文
1.2 遍歷列操作
- 語(yǔ)法
func (cols *Cols) Next() bool
1.3 單列操作
- 語(yǔ)法
func (cols *Cols) Rows(opts ...Options) ([]string, error)
- 語(yǔ)法示例
col,_ := cols.Rows()
1.4 列迭代示例
- 完整代碼
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
//讀取數(shù)據(jù)
f, err := excelize.OpenFile("liuBei.xlsx")
if err != nil {
fmt.Println(err)
return
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
cols,_ := f.Cols("Sheet1")
for cols.Next() {
col,_ := cols.Rows()
for _, rowCell := range col {
fmt.Print(rowCell, "\t")
}
fmt.Println()
}
}
- 結(jié)果顯示
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 26 27 28 29 30
10.10.118.128 10.10.118.129 10.10.118.130 10.10.118.131 10.10.118.132 10.10.118.133 10.10.118.134 10.10.118.135 10.10.118.136 10.10.118.137 10.10.118.138 10.10.118.139 10.10.118.140 10.10.118.141 10.10.118.142 10.10.118.143 10.10.118.144 10.10.118.145 10.10.118.146 10.10.118.147 10.10.118.148 10.10.118.149 10.10.118.150 10.10.118.151 10.10.118.152 10.10.118.153 10.10.118.154 10.10.118.155 10.10.118.156 10.10.118.157
2. 行迭代器
創(chuàng)建liuBei.xlsx工作簿
2.1 獲取行數(shù)據(jù)
- 語(yǔ)法
func (f *File) Rows(sheet string) (*Rows, error)
2.2 遍歷操作
- 語(yǔ)法
func (rows *Rows) Next() bool
2.3 單行操作
- 語(yǔ)法
func (rows *Rows) Columns(opts ...Options) ([]string, error)
2.4 關(guān)閉數(shù)據(jù)流
- 語(yǔ)法
func (rows *Rows) Close() error
2.5 行迭代示例
- 完整示例
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
//讀取數(shù)據(jù)
f, err := excelize.OpenFile("liuBei.xlsx")
if err != nil {
fmt.Println(err)
return
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
//行迭代
rows, _ := f.Rows("Sheet1")
for rows.Next() {
row,_ := rows.Columns()
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
if err = rows.Close(); err != nil {
fmt.Println(err)
}
}
- 結(jié)果
周一 周二 周三 周四 周五 周六 周日
第一天上班 第二天上班 第三天上班 第四天上班 第五天上班 第一天加班 第二天加班