diff --git a/app/admin/models/inventory_report.go b/app/admin/models/inventory_report.go index 94b0221..0bd6a70 100644 --- a/app/admin/models/inventory_report.go +++ b/app/admin/models/inventory_report.go @@ -686,24 +686,38 @@ func reportByProductExport(req *InventoryReportByProductResp) (string, error) { fmt.Println("url fileName:", url+fileName) // 组合标题栏数据 - title := []interface{}{"门店", "商品编号", "商品名称", "商品分类", "有效库存数", "调出中数量", "总数量", "有效库存金额", + title1 := []interface{}{"门店", "商品编号", "商品名称", "商品分类", "", "", "有效库存数", "调出中数量", "总数量", "有效库存金额", "调出中金额", "总金额"} - for i, _ := range title { + title2 := []interface{}{"门店", "商品编号", "商品名称", "一级分类", "二级分类", "三级分类", "有效库存数", "调出中数量", + "总数量", "有效库存金额", + "调出中金额", "总金额"} + for i, _ := range title1 { cell, _ := excelize.CoordinatesToCellName(1+i, 1) - err := file.SetCellValue(fSheet, cell, title[i]) + err := file.SetCellValue(fSheet, cell, title1[i]) if err != nil { - logger.Error("file set value err:", logger.Field("err", err)) + logger.Errorf("file set value err:", err) + } + } + + for i, _ := range title2 { + cell, _ := excelize.CoordinatesToCellName(1+i, 2) + err := file.SetCellValue(fSheet, cell, title2[i]) + if err != nil { + logger.Errorf("file set value err:", err) } } var row1 []interface{} nExcelStartRow := 0 for _, reportData := range req.List { + categoryLevels, _ := GetCategoryLevels(reportData.CategoryID) row1 = []interface{}{ reportData.StoreName, // 门店 reportData.CommoditySerialNumber, // 商品编号 reportData.CommodityName, // 商品名称 - reportData.CategoryName, // 商品分类 + categoryLevels.Level1.Name, // 一级分类 + categoryLevels.Level2.Name, // 二级分类 + categoryLevels.Level3.Name, // 三级分类 reportData.EffectiveCount, // 有效库存数 reportData.TransferCount, // 调出中数量 reportData.Count, // 总数量 @@ -713,7 +727,7 @@ func reportByProductExport(req *InventoryReportByProductResp) (string, error) { } for j, _ := range row1 { - cell, _ := excelize.CoordinatesToCellName(1+j, nExcelStartRow+2) + cell, _ := excelize.CoordinatesToCellName(1+j, nExcelStartRow+3) err := file.SetCellValue(fSheet, cell, row1[j]) if err != nil { logger.Error("file set value err:", logger.Field("err", err)) @@ -723,10 +737,10 @@ func reportByProductExport(req *InventoryReportByProductResp) (string, error) { } totalData := "记录数:" + strconv.FormatInt(int64(req.Total), 10) - end := []interface{}{totalData, "", "", "", req.TotalEffectiveCount, req.TotalTransferCount, req.TotalCount, + end := []interface{}{totalData, "", "", "", "", "", req.TotalEffectiveCount, req.TotalTransferCount, req.TotalCount, req.TotalEffectiveAmount, req.TotalTransferAmount, req.TotalAmount} for i, _ := range end { - cell, _ := excelize.CoordinatesToCellName(1+i, nExcelStartRow+2) + cell, _ := excelize.CoordinatesToCellName(1+i, nExcelStartRow+3) err := file.SetCellValue(fSheet, cell, end[i]) if err != nil { logger.Error("file set value err:", logger.Field("err", err)) @@ -740,8 +754,21 @@ func reportByProductExport(req *InventoryReportByProductResp) (string, error) { {"type":"right","color":"000000","style":1}, {"type":"bottom","color":"000000","style":1}]}`) + // 合并单元格 + _ = file.MergeCell(fSheet, "A1", "A2") + _ = file.MergeCell(fSheet, "B1", "B2") + _ = file.MergeCell(fSheet, "C1", "C2") + _ = file.MergeCell(fSheet, "D1", "F1") + _ = file.MergeCell(fSheet, "G1", "G2") + _ = file.MergeCell(fSheet, "H1", "H2") + _ = file.MergeCell(fSheet, "I1", "I2") + _ = file.MergeCell(fSheet, "J1", "J2") + _ = file.MergeCell(fSheet, "K1", "K2") + _ = file.MergeCell(fSheet, "L1", "L2") + //设置单元格高度 file.SetRowHeight("Sheet1", 1, 20) + file.SetRowHeight("Sheet1", 2, 20) // 设置单元格大小 file.SetColWidth("Sheet1", "A", "A", 30) @@ -752,8 +779,10 @@ func reportByProductExport(req *InventoryReportByProductResp) (string, error) { file.SetColWidth("Sheet1", "H", "H", 15) file.SetColWidth("Sheet1", "I", "I", 15) file.SetColWidth("Sheet1", "J", "J", 15) + file.SetColWidth("Sheet1", "K", "K", 15) + file.SetColWidth("Sheet1", "L", "L", 15) - endRow := fmt.Sprintf("J"+"%d", nExcelStartRow+2) + endRow := fmt.Sprintf("L"+"%d", nExcelStartRow+3) // 应用样式到整个表格 _ = file.SetCellStyle("Sheet1", "A1", endRow, style)