From 3bbe212120c1199e574087f63afe8f384ffe16f5 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 31 七月 2024 15:01:21 +0800 Subject: [PATCH] 抽离设置表头为公共方法 --- service/month_forms.go | 55 +++++------------- service/more_units.go | 24 ++++++++ service/location_forms.go | 48 +++------------ 3 files changed, 51 insertions(+), 76 deletions(-) diff --git a/service/location_forms.go b/service/location_forms.go index 262fa59..28d686d 100644 --- a/service/location_forms.go +++ b/service/location_forms.go @@ -104,46 +104,20 @@ unitData, unitIndexMap := GetAllUnits() // 鑷畾涔夎〃澶� headers := []interface{}{"浣嶇疆", "浜у搧", "浜у搧绫诲埆", map[string][]string{"鍦ㄥ簱鏁伴噺": unitData}, "浠峰��"} - - // 璁剧疆琛ㄥご - i := 1 - for _, h := range headers { - if v, ok := h.(string); ok { - f.SetCellValue("Sheet1", getColumnAlphabet(i)+"1", v) - i++ - } else if childHeaders, ok := h.(map[string][]string); ok { - for title, list := range childHeaders { - f.SetCellValue("Sheet1", getColumnAlphabet(i)+"1", title) - err = f.MergeCell("Sheet1", getColumnAlphabet(i)+"1", getColumnAlphabet(i-1+len(list))+"1") // 鍚堝苟鍗曞厓鏍� - for _, t := range list { - f.SetCellValue("Sheet1", getColumnAlphabet(i)+"2", t) - i++ - } - } - } - } - - // 璁剧疆琛ㄥご鏍峰紡 - style := &excelize.Style{ - Border: nil, - Fill: excelize.Fill{ - Type: "pattern", - Pattern: 1, - Shading: 0, - }, - Font: &excelize.Font{ - Bold: true, - }, - Alignment: &excelize.Alignment{ - Horizontal: "center", - }, - } - titleStyle, err := f.NewStyle(style) + lastColumnNumber, err := SetExcelHeaders(headers, f) if err != nil { - return + return "", err + } + f.MergeCell("Sheet1", "A1", "A2") // 鍚堝苟鍗曞厓鏍� + f.MergeCell("Sheet1", "B1", "B2") // 鍚堝苟鍗曞厓鏍� + f.MergeCell("Sheet1", "C1", "C2") // 鍚堝苟鍗曞厓鏍� + + titleStyle, err := SetHeaderStyle(f) + if err != nil { + return "", err } - lastColumn := getColumnAlphabet(i) + lastColumn := getColumnAlphabet(lastColumnNumber) f.SetCellStyle("Sheet1", "A1", lastColumn+"2", titleStyle) // 璁剧疆鍒楀 f.SetColWidth("Sheet1", "A", "C", 30) diff --git a/service/month_forms.go b/service/month_forms.go index a6fe4de..34a9cc5 100644 --- a/service/month_forms.go +++ b/service/month_forms.go @@ -70,49 +70,26 @@ unitData, unitIndexMap := GetAllUnits() unitLen := len(unitData) - // 璁剧疆琛ㄥご - f.SetCellValue("Sheet1", "A1", "浜у搧缂栫爜") - f.MergeCell("Sheet1", "A1", "A2") // 鍚堝苟鍗曞厓鏍� - f.SetCellValue("Sheet1", "B1", "浜у搧鍚嶇О") - f.MergeCell("Sheet1", "B1", "B2") // 鍚堝苟鍗曞厓鏍� - f.SetCellValue("Sheet1", getColumnAlphabet(3)+"1", "鏈熷垵搴撳瓨") - f.MergeCell("Sheet1", getColumnAlphabet(3)+"1", getColumnAlphabet(2+unitLen)+"1") // 鍚堝苟鍗曞厓鏍� - f.SetCellValue("Sheet1", getColumnAlphabet(3+unitLen)+"1", "鏈湀鍏ュ簱") - f.MergeCell("Sheet1", getColumnAlphabet(3+unitLen)+"1", getColumnAlphabet(2+unitLen*2)+"1") // 鍚堝苟鍗曞厓鏍� - f.SetCellValue("Sheet1", getColumnAlphabet(3+unitLen*2)+"1", "鏈湀鍑哄簱") - f.MergeCell("Sheet1", getColumnAlphabet(3+unitLen*2)+"1", getColumnAlphabet(2+unitLen*3)+"1") // 鍚堝苟鍗曞厓鏍� - f.SetCellValue("Sheet1", getColumnAlphabet(3+unitLen*3)+"1", "鏈熸湯搴撳瓨") - f.MergeCell("Sheet1", getColumnAlphabet(3+unitLen*3)+"1", getColumnAlphabet(2+unitLen*4)+"1") // 鍚堝苟鍗曞厓鏍� - - for j := 0; j < 4; j++ { //缁欐湡鍒濆簱瀛橈紝 鏈湀鍏ュ簱锛� 鏈湀鍑哄簱锛� 鏈熸湯搴撳瓨璧嬪�煎鍗曚綅琛ㄥご - for i, header := range unitData { - cell := getColumnAlphabet(i+3+unitLen*j) + "2" - f.SetCellValue("Sheet1", cell, header) - } - } - // 璁剧疆琛ㄥご鏍峰紡 - style := &excelize.Style{ - Border: nil, - Fill: excelize.Fill{ - Type: "pattern", - Pattern: 1, - Shading: 0, - }, - Font: &excelize.Font{ - Bold: true, - }, - Alignment: &excelize.Alignment{ - Horizontal: "center", - }, - } - titleStyle, err := f.NewStyle(style) + // 鑷畾涔夎〃澶� + headers := []interface{}{"浜у搧缂栫爜", "浜у搧鍚嶇О", map[string][]string{"鏈熷垵搴撳瓨": unitData}, map[string][]string{"鏈湀鍏ュ簱": unitData}, map[string][]string{"鏈湀鍑哄簱": unitData}, map[string][]string{"鏈熸湯搴撳瓨": unitData}} + lastColumnNumber, err := SetExcelHeaders(headers, f) if err != nil { - return + return "", err } - f.SetCellStyle("Sheet1", "A1", getColumnAlphabet(2+unitLen*4)+"2", titleStyle) + + f.MergeCell("Sheet1", "A1", "A2") // 鍚堝苟鍗曞厓鏍� + f.MergeCell("Sheet1", "B1", "B2") // 鍚堝苟鍗曞厓鏍� + + titleStyle, err := SetHeaderStyle(f) + if err != nil { + return "", err + } + + lastColumn := getColumnAlphabet(lastColumnNumber) + f.SetCellStyle("Sheet1", "A1", lastColumn+"2", titleStyle) // 璁剧疆鍒楀 f.SetColWidth("Sheet1", "A", "B", 30) - f.SetColWidth("Sheet1", "C", getColumnAlphabet(2+unitLen*4), 15) + f.SetColWidth("Sheet1", "C", lastColumn, 15) for i, v := range dataList { row := strconv.Itoa(i + 3) diff --git a/service/more_units.go b/service/more_units.go index 6982f4e..20c8d84 100644 --- a/service/more_units.go +++ b/service/more_units.go @@ -140,3 +140,27 @@ } return } + +func SetExcelHeaders(headers []interface{}, f *excelize.File) (lastColumnNumber int, err error) { + // 璁剧疆琛ㄥご + i := 1 + for _, h := range headers { + if v, ok := h.(string); ok { + f.SetCellValue("Sheet1", getColumnAlphabet(i)+"1", v) + i++ + } else if childHeaders, ok := h.(map[string][]string); ok { + for title, list := range childHeaders { + f.SetCellValue("Sheet1", getColumnAlphabet(i)+"1", title) + err = f.MergeCell("Sheet1", getColumnAlphabet(i)+"1", getColumnAlphabet(i-1+len(list))+"1") // 鍚堝苟鍗曞厓鏍� + if err != nil { + return 1, err + } + for _, t := range list { + f.SetCellValue("Sheet1", getColumnAlphabet(i)+"2", t) + i++ + } + } + } + } + return i, nil +} -- Gitblit v1.8.0