用于读取 Excel XLSX 文件的开源 Go 库
通过 Open Source Go API 阅读 XLSX 文档。
Go-Excel 入门
将 Go-Excel 安装到项目中的推荐方法是使用 GitHub。请使用以下命令进行顺利安装。
通过 GitHub 安装 go-excel
go get github.com/szyhf/go-excel
通过 Free Go API 读取 Excel 文件
开源库 Go-Excel 允许计算机程序员通过 GO 读取 Excel 文件。在读取 excel 文件时,可以使用字段名作为默认列名,并且可以将一列映射到多个字段。设置读取选项后,您使用 excel.NewConnector() 方法打开与 Excel 文件的新连接并成功,连接到 excel 文件后,您可以使用 conn.NewReader() 方法读取其内容。
简易阅读器读取应用程序中的Excel文件
type Reader interface {
// Get all titles sorted
GetTitles() []string
// Read current row into a object
Read(v interface{}) error
// Read all rows
// container: container should be ptr to slice or array.
ReadAll(container interface{}) error
// Read next rows
Next() bool
// Close the reader
Close() error
}
通过 GO API 读取 Excel 的高级方法
开源 API Go-Excel 提供了读取 excel 文件的基本和高级方法。您可以使用索引行作为标题,标题行之前的每一行都将被忽略,默认标题行设置为 0。您可以跳过空行,跳过大于标题的列。 API 允许使用默认值设置空单元格,您可以通过 encoding.BinaryUnmarshaler 使用 unmarshal 设置默认值
通过免费GAPI读取地图
conn := excel.NewConnecter()
err := conn.Open(filePath)
if err != nil {
fmt.Println(err)
return
}
defer conn.Close()
// Generate an new reader of a sheet
// sheetNamer: if sheetNamer is string, will use sheet as sheet name.
// if sheetNamer is int, will i'th sheet in the workbook, be careful the hidden sheet is counted. i ∈ [1,+inf]
// if sheetNamer is a object implements `GetXLSXSheetName()string`, the return value will be used.
// otherwise, will use sheetNamer as struct and reflect for it's name.
// if sheetNamer is a slice, the type of element will be used to infer like before.
rd, err := conn.NewReader(stdSheetName)
if err != nil {
fmt.Println(err)
return
}
defer rd.Close()
idx := 0
for rd.Next() {
var m map[string]string
if err := rd.Read(&m); err != nil {
fmt.Println(err)
return
}
expectStdMap := expectStandardMapList[idx]
if !reflect.DeepEqual(m, expectStdMap) {
fmt.Printf("unexpect std at %d = \n%s", idx, convert.MustJsonPrettyString(expectStdMap))
}
fmt.Printf("%d => %s\n", idx, convert.MustJsonString(m))
idx++
}