我需要从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()
}
就我而言,每个文件将具有不同名称的工作表。因此,有没有一种方法可以只获取默认/第一个工作表的所有行?在此先多谢!
最佳答案
您可以使用f.WorkBook.Sheets.Sheet[0].Name
来获取第一张工作表的名称,其中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张纸的玩具Excel工作簿,我得到以下输出:'Sheet1' is first sheet of 2 sheets.
1 2
关于excel - Go中未提供工作表/节名称时如何从XLS文件读取所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62924127/