登录
首页 >  Golang >  Go问答

如何在 Go 中读取 XLS 文件中所有行,即使未指定工作表/节名称

来源:stackoverflow

时间:2024-03-23 08:48:29 236浏览 收藏

本教程介绍如何在 Go 语言中使用 excelize 库读取 XLS 文件中的所有行,即使未指定工作表或节名称。通过使用 f.workbook.sheets.sheet[0].name,您可以获取第一个工作表的名称,并使用此名称通过 f.getrows() 方法获取所有行。本教程提供了一个代码示例,展示了如何使用此方法从包含多个工作表的 XLS 文件中读取行。

问题内容

我需要读取 go 中 .xsl 文件中的所有行。发现了这个令人惊叹的 excelize 库,它可以让我读取和写入 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

到这里,我们也就讲完了《如何在 Go 中读取 XLS 文件中所有行,即使未指定工作表/节名称》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>