package
1.2.6
Repository: https://github.com/morehao/go-tools.git
Documentation: pkg.go.dev

# README

go-excel

简介

go-excel 是基于 excelize 的简单封装,支持通过结构体便捷地读写 Excel 文件。

无论是读取 Excel 还是写入 Excel,都需要定义一个结构体,结构体的字段通过 tag(即 ex)来指定 Excel 的相关信息。

特性

  • 通过结构体标签定义Excel列映射关系
  • 支持读取和写入Excel文件
  • 支持基于validator的数据验证

安装

go get github.com/morehao/go-excel

使用

读取Excel

读取Excel的简单示例:

package main

import (
	"fmt"
	"github.com/morehao/go-excel"
	"github.com/xuri/excelize/v2"
)

type DataItem struct {
	SerialNumber int64  `ex:"head:序号" validate:"min=10,max=100"`
	UserName     string `ex:"head:姓名"`
	Age          int64  `ex:"head:年龄"`
}

func main() {
	f, openErr := excelize.OpenFile("test.xlsx")
	if openErr != nil {
		fmt.Println("open file error: ", openErr)
		return
	}
	defer func() {
		if err := f.Close(); err != nil {
			fmt.Println(err)
		}
	}()

	reader := excel.NewReader(f, &excel.ReaderOption{
		SheetNumber:  0,
		HeadRow:      0,
		DataStartRow: 1,
	})
	var dataList []DataItem
	validateErrMap, readerErr := reader.Read(&dataList)
	if readerErr != nil {
		fmt.Println("read error: ", readerErr)
		return
	}
	if len(validateErrMap) > 0 {
		fmt.Println("validate error: ", validateErrMap)
		return
	}
	for _, item := range dataList {
		fmt.Println(item)
	}
}

写入Excel

生成Excel的简单示例:

package main

import (
	"fmt"
	"github.com/morehao/go-excel"
)

type DataItem struct {
	SerialNumber int64  `ex:"head:序号" validate:"min=10,max=100"`
	UserName     string `ex:"head:姓名"`
	Age          int64  `ex:"head:年龄"`
}

func main() {
	var dataList []DataItem
	dataList = append(dataList, DataItem{
		SerialNumber: 1,
		UserName:     "张三",
		Age:          18,
	})
	excelWriter := excel.NewWrite(&excel.WriteOption{
		SheetName: "Sheet1",
		HeadRow:   0,
	})
	if err := excelWriter.SaveAs(dataList, "write.xlsx"); err != nil {
		fmt.Println("write error: ", err)
	}
}

# Packages

No description provided by the author

# Functions

No description provided by the author
No description provided by the author

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author