From 8be390b2cfadfdfcdca523924f2a3264556fbc4f Mon Sep 17 00:00:00 2001 From: qSeisCloud <94546156+qSeisCloud@users.noreply.github.com> Date: Tue, 29 Apr 2025 13:21:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A1=A8=E6=A0=BC=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E8=A1=8C=E9=A6=96=E5=B0=BE=E7=A9=BA=E4=B8=8D=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E6=88=96=E5=A4=9A=E4=BD=99=E7=9A=84=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84SQL=E8=AF=AD=E5=8F=A5=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复表格标题行首尾空不匹配或多余的标题导致的SQL语句错误问题 --- server/service/system/sys_export_template.go | 10 ++++++++++ web/index.html | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/server/service/system/sys_export_template.go b/server/service/system/sys_export_template.go index 263908be..ff1c2efe 100644 --- a/server/service/system/sys_export_template.go +++ b/server/service/system/sys_export_template.go @@ -3,6 +3,7 @@ package system import ( "bytes" "encoding/json" + "errors" "fmt" "mime/multipart" "net/url" @@ -398,6 +399,9 @@ func (sysExportTemplateService *SysExportTemplateService) ImportExcel(templateID if err != nil { return err } + if len(rows) < 2 { + return errors.New("Excel data is not enough.\nIt should contain title row and data") + } var templateInfoMap = make(map[string]string) err = json.Unmarshal([]byte(template.TemplateInfo), &templateInfoMap) @@ -417,11 +421,17 @@ func (sysExportTemplateService *SysExportTemplateService) ImportExcel(templateID return db.Transaction(func(tx *gorm.DB) error { excelTitle := rows[0] + for i, str := range excelTitle { + excelTitle[i] = strings.TrimSpace(str) + } values := rows[1:] items := make([]map[string]interface{}, 0, len(values)) for _, row := range values { var item = make(map[string]interface{}) for ii, value := range row { + if _, ok := titleKeyMap[excelTitle[ii]]; !ok { + continue // excel中多余的标题,在模板信息中没有对应的字段,因此key为空,必须跳过 + } key := titleKeyMap[excelTitle[ii]] item[key] = value } diff --git a/web/index.html b/web/index.html index 1d8d87a2..eeb87a26 100644 --- a/web/index.html +++ b/web/index.html @@ -8,7 +8,7 @@ content="Gin,Vue,Admin.Gin-Vue-Admin,GVA,gin-vue-admin,后台管理框架,vue后台管理框架,gin-vue-admin文档,gin-vue-admin首页,gin-vue-admin" name="keywords" /> - +