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