1、 产品库存汇总(按门店)导出excel新增二三级分类;

This commit is contained in:
chenlin 2024-12-17 15:54:48 +08:00
parent 32f819845b
commit db1416c42e

View File

@ -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)