feat:优化导入数据结构
This commit is contained in:
19
lib/excel.go
19
lib/excel.go
@ -224,20 +224,21 @@ func (this *Excel) Save(path string) error {
|
||||
}
|
||||
|
||||
// Analysis 解析
|
||||
func (this *Excel) Analysis(src interface{}) []interface{} {
|
||||
if src == nil {
|
||||
// @dist:标识对象
|
||||
func (this *Excel) Analysis(dist interface{}) []interface{} {
|
||||
if dist == nil {
|
||||
return nil
|
||||
}
|
||||
out := make([]interface{}, 0)
|
||||
out := make([]interface{}, len(this.body))
|
||||
// 原指针
|
||||
_src := reflect.TypeOf(src)
|
||||
_dist := reflect.TypeOf(dist)
|
||||
|
||||
// 指针类型获取真正type需要调用Elem
|
||||
if _src.Kind() == reflect.Ptr {
|
||||
_src = _src.Elem()
|
||||
if _dist.Kind() == reflect.Ptr {
|
||||
_dist = _dist.Elem()
|
||||
}
|
||||
for _, val := range this.body {
|
||||
tRef := reflect.New(_src)
|
||||
for key, val := range this.body {
|
||||
tRef := reflect.New(_dist)
|
||||
|
||||
fieldNum := tRef.Elem().NumField()
|
||||
|
||||
@ -271,7 +272,7 @@ func (this *Excel) Analysis(src interface{}) []interface{} {
|
||||
}
|
||||
}
|
||||
}
|
||||
out = append(out, tRef.Interface())
|
||||
out[key] = tRef.Interface()
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
@ -44,9 +44,11 @@ func TestNewExcelImport(t *testing.T) {
|
||||
}
|
||||
data := excel.Analysis(&Data{})
|
||||
|
||||
t.Log(len(data))
|
||||
|
||||
for _, v := range data {
|
||||
_data, ok := v.(*Data)
|
||||
t.Log(ok)
|
||||
t.Log(_data.Name)
|
||||
t.Log(_data)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user