Go中未提供sheet/section名称时如何从XLS文件中读取所有行
How to read all the rows from an XLS file when sheet/section name is not provided in Go
我需要在 Go 中读取 .xsl
个文件中的所有行。发现这个神奇的 Excelize library 让我可以读取和写入 XLSX/XLSM/XLTM 个文件。
很遗憾,他们的GetRows()
需要工作表名称。
// Get all the rows in the Sheet1.
rows, err := f.GetRows("Sheet1")
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
在我的例子中,每个文件都有不同的命名工作表。那么有没有办法只获取 defaulted/first 工作表 的所有行?提前致谢!
您可以使用 f.WorkBook.Sheets.Sheet[0].Name
获取第一个 sheet 的名称,其中 f
是 excelize.File
.
package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
"log"
)
func main() {
f, err := excelize.OpenFile("Book.xlsx")
if err != nil {
log.Fatalln(err)
}
firstSheet := f.WorkBook.Sheets.Sheet[0].Name
fmt.Printf("'%s' is first sheet of %d sheets.\n", firstSheet, f.SheetCount)
rows, err := f.GetRows(firstSheet)
if err != nil {
log.Fatalln(err)
}
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
}
使用带有 2 sheet 的玩具 Excel 工作簿,我得到以下输出:
'Sheet1' is first sheet of 2 sheets.
1 2
我需要在 Go 中读取 .xsl
个文件中的所有行。发现这个神奇的 Excelize library 让我可以读取和写入 XLSX/XLSM/XLTM 个文件。
很遗憾,他们的GetRows()
需要工作表名称。
// Get all the rows in the Sheet1.
rows, err := f.GetRows("Sheet1")
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
在我的例子中,每个文件都有不同的命名工作表。那么有没有办法只获取 defaulted/first 工作表 的所有行?提前致谢!
您可以使用 f.WorkBook.Sheets.Sheet[0].Name
获取第一个 sheet 的名称,其中 f
是 excelize.File
.
package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
"log"
)
func main() {
f, err := excelize.OpenFile("Book.xlsx")
if err != nil {
log.Fatalln(err)
}
firstSheet := f.WorkBook.Sheets.Sheet[0].Name
fmt.Printf("'%s' is first sheet of %d sheets.\n", firstSheet, f.SheetCount)
rows, err := f.GetRows(firstSheet)
if err != nil {
log.Fatalln(err)
}
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
}
使用带有 2 sheet 的玩具 Excel 工作簿,我得到以下输出:
'Sheet1' is first sheet of 2 sheets.
1 2