| | |
| | | resp.Unit = amount.Product.Unit |
| | | resp.Value = resp.Amount.Mul(amount.Product.Cost) |
| | | |
| | | if *amount.Product.MoreUnit { |
| | | moreUnit := amount.Product.MoreUnit |
| | | if moreUnit != nil && *moreUnit { |
| | | resp.AmountMoreUnits = CreateMoreUnit(resp.Amount, amount.Product.MoreUnitList) |
| | | } |
| | | |
| | |
| | | } 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) |
| | | if err != nil { |
| | | return |
| | | } |
| | | |
| | | lastColumn := getColumnAlphabet(i) |
| | | f.SetCellStyle("Sheet1", "A1", lastColumn+"2", titleStyle) |
| | | // 设置列宽 |
| | | f.SetColWidth("Sheet1", "A", "C", 30) |
| | | f.SetColWidth("Sheet1", "D", lastColumn, 15) |
| | | |
| | | for i, v := range dataList { |
| | | column := strconv.Itoa(i + 2) |
| | | column := strconv.Itoa(i + 3) |
| | | f.SetCellValue("Sheet1", "A"+column, v.LocationName) |
| | | f.SetCellValue("Sheet1", "B"+column, v.ProductName) |
| | | f.SetCellValue("Sheet1", "C"+column, v.ProductTypeName) |
| | | f.SetCellValue("Sheet1", "D"+column, v.Amount) |
| | | FillMoreUnitToExcel(v.Amount, v.AmountMoreUnits, 4, i+2, f) |
| | | f.SetCellValue("Sheet1", "H"+column, v.Value) |
| | | } |
| | | |
| | | fileName = fmt.Sprintf("位置报表%s.xlsx", time.Now().Format("2006-01-02-1504")) |