Categorygithub.com/jellycheng/goparseexcel
repositorypackage
0.0.0-20230611113014-897513b2e4ce
Repository: https://github.com/jellycheng/goparseexcel.git
Documentation: pkg.go.dev

# README

goparseexcel

Language Go Reference Goproxy.cn

Requirements

gosupport library requires Go version >=1.16

get依赖

方式1:
    go get github.com/jellycheng/goparseexcel

方式2:
GO111MODULE=on GOPROXY=https://goproxy.cn/,direct go get github.com/jellycheng/goparseexcel

Documentation

https://pkg.go.dev/github.com/jellycheng/goparseexcel

示例

package main

import (
	"errors"
	"fmt"
	"github.com/jellycheng/goparseexcel"
	"github.com/jellycheng/gosupport"
)

func main() {

	if err := goparseexcel.DataProcessMode("example.toml", func(tomlCfg gosupport.H, dto goparseexcel.ApiBodyDto) error {		
		if apiConfig, isOk := tomlCfg["api_config"].(map[string]interface{}); isOk {
			signSecret := gosupport.ToStr(apiConfig["sign_secret"])
			reqUrl := gosupport.ToStr(apiConfig["api_url"])
            var errOne error
            for _, tmpVal := range dto.Data {//遍历excel记录
                reqOne := goparseexcel.ApiBodyOneDto{
                    Header: dto.Header,
                    Data:   tmpVal,
                }
                // 发起请求,单条
                if err, ret := goparseexcel.PostJson(reqUrl, gosupport.ToJson(reqOne), signSecret); err != nil {
                    errOne = err
                } else {
                    fmt.Println(ret)
                }
            }
            return errOne
		} else {
			return errors.New("缺少api_config配置")
		}

	}); err != nil {
		fmt.Println(err.Error())
	} else {
		fmt.Println("ok")
	}

}

分析excel

package main

import (
	"fmt"
	"github.com/jellycheng/goparseexcel"
	"strings"
)

func main() {
	excelFile := "/Users/jelly/Desktop/合同订单-20230608-导出数据.xlsx"
	sheetName := ""
	count := 0 // 控制解析行数
	if err, rows := goparseexcel.ParseExcel(excelFile, sheetName); err == nil {
		for rowKey, row := range rows { // 循环行
			fmt.Println("rowKey=", rowKey)
			count++
			if count > 4 {
				break
			}
			for colkey, colCell := range row { // 循环列
				colName := goparseexcel.GetExcelNo(colkey) // excel列号 A、B、C...
				colCell = strings.TrimSpace(colCell)       // 内容并去掉前后空格
				fmt.Println("列号=", colName, " | 列内容=", colCell)
			}
		}
	} else {
		fmt.Println(err.Error())
	}

}