From 34de248a46755b2309f5ac8e95261c25fe1e210d Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期二, 30 七月 2024 19:12:47 +0800 Subject: [PATCH] 月度报表多单位使用动态表头及相应调整 --- service/month_forms.go | 98 ++++++++++++++++--------------------------------- 1 files changed, 32 insertions(+), 66 deletions(-) diff --git a/service/month_forms.go b/service/month_forms.go index 9f1aed5..a6fe4de 100644 --- a/service/month_forms.go +++ b/service/month_forms.go @@ -67,36 +67,29 @@ return "", err } + unitData, unitIndexMap := GetAllUnits() + unitLen := len(unitData) + // 璁剧疆琛ㄥご f.SetCellValue("Sheet1", "A1", "浜у搧缂栫爜") + f.MergeCell("Sheet1", "A1", "A2") // 鍚堝苟鍗曞厓鏍� f.SetCellValue("Sheet1", "B1", "浜у搧鍚嶇О") - f.SetCellValue("Sheet1", "C1", "鏈熷垵搴撳瓨") - f.MergeCell("Sheet1", "C1", "F1") // 鍚堝苟鍗曞厓鏍� - f.SetCellValue("Sheet1", "G1", "鏈湀鍏ュ簱") - f.MergeCell("Sheet1", "G1", "J1") // 鍚堝苟鍗曞厓鏍� - f.SetCellValue("Sheet1", "K1", "鏈湀鍑哄簱") - f.MergeCell("Sheet1", "K1", "N1") // 鍚堝苟鍗曞厓鏍� - f.SetCellValue("Sheet1", "O1", "鏈熸湯搴撳瓨") - f.MergeCell("Sheet1", "O1", "R1") // 鍚堝苟鍗曞厓鏍� + 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") // 鍚堝苟鍗曞厓鏍� - unitData := []string{"浠�", "鍖�", "绫�", "閲嶉噺"} - for i, header := range unitData { - cell := getColumnAlphabet(i+3) + "2" - f.SetCellValue("Sheet1", cell, header) + for j := 0; j < 4; j++ { //缁欐湡鍒濆簱瀛橈紝 鏈湀鍏ュ簱锛� 鏈湀鍑哄簱锛� 鏈熸湯搴撳瓨璧嬪�煎鍗曚綅琛ㄥご + for i, header := range unitData { + cell := getColumnAlphabet(i+3+unitLen*j) + "2" + f.SetCellValue("Sheet1", cell, header) + } } - for i, header := range unitData { - cell := getColumnAlphabet(i+7) + "2" - f.SetCellValue("Sheet1", cell, header) - } - for i, header := range unitData { - cell := getColumnAlphabet(i+11) + "2" - f.SetCellValue("Sheet1", cell, header) - } - for i, header := range unitData { - cell := getColumnAlphabet(i+15) + "2" - f.SetCellValue("Sheet1", cell, header) - } - // 璁剧疆琛ㄥご鏍峰紡 style := &excelize.Style{ Border: nil, @@ -116,61 +109,34 @@ if err != nil { return } - f.SetCellStyle("Sheet1", "A1", "R2", titleStyle) + f.SetCellStyle("Sheet1", "A1", getColumnAlphabet(2+unitLen*4)+"2", titleStyle) // 璁剧疆鍒楀 f.SetColWidth("Sheet1", "A", "B", 30) - f.SetColWidth("Sheet1", "C", "R", 15) + f.SetColWidth("Sheet1", "C", getColumnAlphabet(2+unitLen*4), 15) for i, v := range dataList { - column := strconv.Itoa(i + 3) - f.SetCellValue("Sheet1", "A"+column, v.ProductId) - f.SetCellValue("Sheet1", "B"+column, v.ProductName) - f.SetCellValue("Sheet1", "C"+column, v.BeginAmount) + row := strconv.Itoa(i + 3) + f.SetCellValue("Sheet1", "A"+row, v.ProductId) + f.SetCellValue("Sheet1", "B"+row, v.ProductName) + + v.BeginMoreUnitsArr = append(v.BeginMoreUnitsArr, models.UnitItems{Amount: v.BeginAmount, Unit: v.Unit}) for _, v := range v.BeginMoreUnitsArr { - switch v.Unit { - case "浠�": - f.SetCellValue("Sheet1", "D"+column, v.Amount) - case "鍖�": - f.SetCellValue("Sheet1", "E"+column, v.Amount) - case "绫�": - f.SetCellValue("Sheet1", "F"+column, v.Amount) - } + f.SetCellValue("Sheet1", getColumnAlphabet(3+unitIndexMap[v.Unit])+row, v.Amount) } - f.SetCellValue("Sheet1", "G"+column, v.InputAmount) + v.InputMoreUnitsArr = append(v.InputMoreUnitsArr, models.UnitItems{Amount: v.InputAmount, Unit: v.Unit}) for _, v := range v.InputMoreUnitsArr { - switch v.Unit { - case "浠�": - f.SetCellValue("Sheet1", "H"+column, v.Amount) - case "鍖�": - f.SetCellValue("Sheet1", "I"+column, v.Amount) - case "绫�": - f.SetCellValue("Sheet1", "J"+column, v.Amount) - } + f.SetCellValue("Sheet1", getColumnAlphabet(3+unitLen*1+unitIndexMap[v.Unit])+row, v.Amount) } - f.SetCellValue("Sheet1", "K"+column, v.OutputAmount) + v.OutputMoreUnitsArr = append(v.OutputMoreUnitsArr, models.UnitItems{Amount: v.OutputAmount, Unit: v.Unit}) for _, v := range v.OutputMoreUnitsArr { - switch v.Unit { - case "浠�": - f.SetCellValue("Sheet1", "L"+column, v.Amount) - case "鍖�": - f.SetCellValue("Sheet1", "M"+column, v.Amount) - case "绫�": - f.SetCellValue("Sheet1", "N"+column, v.Amount) - } + f.SetCellValue("Sheet1", getColumnAlphabet(3+unitLen*2+unitIndexMap[v.Unit])+row, v.Amount) } - f.SetCellValue("Sheet1", "O"+column, v.EndAmount) + v.EndMoreUnitsArr = append(v.EndMoreUnitsArr, models.UnitItems{Amount: v.EndAmount, Unit: v.Unit}) for _, v := range v.EndMoreUnitsArr { - switch v.Unit { - case "浠�": - f.SetCellValue("Sheet1", "P"+column, v.Amount) - case "鍖�": - f.SetCellValue("Sheet1", "Q"+column, v.Amount) - case "绫�": - f.SetCellValue("Sheet1", "R"+column, v.Amount) - } + f.SetCellValue("Sheet1", getColumnAlphabet(3+unitLen*3+unitIndexMap[v.Unit])+row, v.Amount) } } -- Gitblit v1.8.0