Go--生成excel表格,读取excel表格数据

先下载第三方依赖包:

go get -u github.com/xuri/excelize/v2

 

代码:

package main

import (
    "fmt"
    "github.com/xuri/excelize/v2"
)

//生成excel表格
func touchExcel() {
    //开启新的文件
    f := excelize.NewFile()

    //创建一个工作表
    index, err := f.NewSheet("工作表名")
    if err != nil {
        fmt.Println("创建工作表失败:", err)
    }

    //设置默认的工作表
    f.SetActiveSheet(index)

    //给单元格赋值
    f.SetCellValue("工作表名", "A2", "hello")
    f.SetCellValue("工作表名", "B2", "100")

    //创建一个工作表
    f.NewSheet("Sheet1")

    f.SetCellValue("Sheet1", "B2", "100")
    //保存路径
    if err := f.SaveAs("test-excel/test2.xlsx"); err != nil {
        fmt.Println("保存文件失败:", err)
    }
}

//打开excel,读取数据
func readExcel() {
    f, err := excelize.OpenFile("test-excel/test2.xlsx")
    if err != nil {
        fmt.Println("打开excel文件失败")
    }

    //打开文件后要关闭
    defer f.Close()

    //获取指定单元格的值
    cell, err := f.GetCellValue("Sheet1", "B2")
    if err != nil {
        fmt.Println("获取数据失败:", err)
        return
    }
    fmt.Printf(cell)

    //获取 工作表名 上所有单元格的值
    rows, err := f.GetRows("工作表名")
    if err != nil {
        fmt.Println("获取单元格失败:", err)
        return
    }
    //遍历数组
    for i, row := range rows {
        if i == 0 {    //表格第一行常为表头,单独拎出来
            fmt.Println(row)    //输出格式:[xxx xxx xxx]
        }else {
            fmt.Println(row[0],row[1])    //可用row[num]来获取单元格里的数据,方便后续使用
        }
        
    }

    //遍历数组,for循环
    for i := 0; i < len(rows); i++ {
        fmt.Println(rows[i])    //输出格式:[xxx xxx xxx]
    }
}

func main() {
    //touchExcel()
    readExcel()
}

 

posted @ 2023-02-09 15:29  心恩惠动  阅读(609)  评论(0编辑  收藏  举报