导表工具增加json格式
This commit is contained in:
@@ -3,6 +3,7 @@ package excel
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/ayflying/excel2json"
|
"github.com/ayflying/excel2json"
|
||||||
|
"github.com/goccy/go-json"
|
||||||
"github.com/gogf/gf/v2/encoding/gjson"
|
"github.com/gogf/gf/v2/encoding/gjson"
|
||||||
"github.com/gogf/gf/v2/frame/g"
|
"github.com/gogf/gf/v2/frame/g"
|
||||||
"github.com/gogf/gf/v2/os/gctx"
|
"github.com/gogf/gf/v2/os/gctx"
|
||||||
@@ -27,6 +28,7 @@ type FileItem struct {
|
|||||||
Items []string `json:"items" dc:"道具字段"`
|
Items []string `json:"items" dc:"道具字段"`
|
||||||
ItemsMap []string `json:"items_map" dc:"道具字段map格式"`
|
ItemsMap []string `json:"items_map" dc:"道具字段map格式"`
|
||||||
Slice map[string]string `json:"slice" dc:"切片"`
|
Slice map[string]string `json:"slice" dc:"切片"`
|
||||||
|
Json []string `json:"json" dc:"json"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Excel struct {
|
type Excel struct {
|
||||||
@@ -78,6 +80,10 @@ func (s *Excel) ExcelLoad(ctx context.Context, fileItem *FileItem, mainPath stri
|
|||||||
if len(fileItem.Slice) > 0 {
|
if len(fileItem.Slice) > 0 {
|
||||||
list = s.sliceFormat(list, fileItem.Slice)
|
list = s.sliceFormat(list, fileItem.Slice)
|
||||||
}
|
}
|
||||||
|
//json格式转换
|
||||||
|
if len(fileItem.Json) > 0 {
|
||||||
|
list = s.jsonFormat(list, fileItem.Json)
|
||||||
|
}
|
||||||
|
|
||||||
//拼接json
|
//拼接json
|
||||||
tempJson = append(tempJson, list...)
|
tempJson = append(tempJson, list...)
|
||||||
@@ -177,3 +183,20 @@ func (s *Excel) sliceFormat(list []interface{}, Slice map[string]string) []inter
|
|||||||
|
|
||||||
return list
|
return list
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Excel) jsonFormat(list []interface{}, Items []string) []interface{} {
|
||||||
|
for k2, v2 := range list {
|
||||||
|
for k3, v3 := range v2.(g.Map) {
|
||||||
|
if gstr.InArray(Items, k3) {
|
||||||
|
if _, ok := v3.(string); ok {
|
||||||
|
var get interface{}
|
||||||
|
json.Unmarshal([]byte(v3.(string)), &get)
|
||||||
|
list[k2].(g.Map)[k3] = get
|
||||||
|
} else {
|
||||||
|
g.Log().Errorf(gctx.New(), "当前类型断言失败:%v,list=%v", v3, v2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user