excel - Go中未提供工作表/节名称时如何从XLS文件读取所有行

标签 excel go xls

我需要从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来获取第一张工作表的名称,其中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张纸的玩具Excel工作簿,我得到以下输出:
'Sheet1' is first sheet of 2 sheets.
1       2

关于excel - Go中未提供工作表/节名称时如何从XLS文件读取所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62924127/

相关文章:

python - 加载时找不到keras模型的输入层

go - 如何从 Telnet session 读取数据

php - 使用 PhpSpreadsheet 在 PHP 中读取 XLS

c# - 使用 C# 打开 Excel 2003 电子表格。找不到可安装的 ISAM。异常(exception)

c# - 可以读/写 .xls 文件的 .NET Excel 库

c# - Excel 互操作 : Fastest way to change color of portions of text in a huge range of cells

vba - LIKE 语句的反面

golang - 为什么++ 和 -- 在表达式中不起作用?

excel - 如何从Application.Caller获取工作表名称?

vba - 从 Excel 中查找并替换单词。应用程序定义或对象定义的错误