From cb4e02e6e3bc3f0311f0c2e9afca288b64fc1e8e Mon Sep 17 00:00:00 2001 From: henry Date: Fri, 15 Apr 2022 09:13:57 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E4=BC=98=E5=8C=96=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/excel.go | 19 ++++++++++--------- lib/excel_test.go | 4 +++- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/excel.go b/lib/excel.go index 57fa2a9..53dbe18 100644 --- a/lib/excel.go +++ b/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 } diff --git a/lib/excel_test.go b/lib/excel_test.go index bdfd133..36f11f2 100644 --- a/lib/excel_test.go +++ b/lib/excel_test.go @@ -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) } }