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 的名称,其中 fexcelize.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