| | |
| | | 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, |
| | |
| | | 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) |
| | | } |
| | | } |
| | | |