|
@@ -3,6 +3,7 @@ package api
|
|
|
import (
|
|
|
"box-cost/db/model"
|
|
|
"fmt"
|
|
|
+ "regexp"
|
|
|
|
|
|
_ "image/gif"
|
|
|
_ "image/jpeg"
|
|
@@ -29,9 +30,11 @@ type ProcessBillExcel struct {
|
|
|
}
|
|
|
|
|
|
func (b *ProcessBillExcel) drawTitle() error {
|
|
|
+ marginLeft := excelize.PageMarginLeft(0.3)
|
|
|
+ b.Excel.SetPageMargins(b.SheetName, marginLeft)
|
|
|
tileIndex := b.Offset + 1
|
|
|
startCell := fmt.Sprintf("A%d", tileIndex)
|
|
|
- err := b.Excel.MergeCell(b.SheetName, startCell, fmt.Sprintf("I%d", tileIndex))
|
|
|
+ err := b.Excel.MergeCell(b.SheetName, startCell, fmt.Sprintf("J%d", tileIndex))
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -83,7 +86,7 @@ func (b *ProcessBillExcel) drawSubTitles() error {
|
|
|
|
|
|
var drawRight = func(rowIndex int, value string) error {
|
|
|
right1Cell := fmt.Sprintf("F%d", rowIndex)
|
|
|
- err = b.Excel.MergeCell(b.SheetName, right1Cell, fmt.Sprintf("I%d", rowIndex))
|
|
|
+ err = b.Excel.MergeCell(b.SheetName, right1Cell, fmt.Sprintf("J%d", rowIndex))
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -223,8 +226,8 @@ func (b *ProcessBillExcel) drawTableFooter() error {
|
|
|
b.Excel.SetCellValue(b.SheetName, addCel, b.Content.SendTo)
|
|
|
|
|
|
sureCel := fmt.Sprintf("F%d", b.Row)
|
|
|
- b.Excel.MergeCell(b.SheetName, sureCel, fmt.Sprintf("I%d", b.Row))
|
|
|
- b.Excel.SetCellStyle(b.SheetName, sureCel, fmt.Sprintf("I%d", b.Row), styleLeft)
|
|
|
+ b.Excel.MergeCell(b.SheetName, sureCel, fmt.Sprintf("J%d", b.Row))
|
|
|
+ b.Excel.SetCellStyle(b.SheetName, sureCel, fmt.Sprintf("J%d", b.Row), styleLeft)
|
|
|
b.Excel.SetCellValue(b.SheetName, sureCel, "供应商签字:")
|
|
|
|
|
|
b.Excel.SetRowHeight(b.SheetName, b.Row, 30)
|
|
@@ -234,14 +237,17 @@ func (b *ProcessBillExcel) drawTableFooter() error {
|
|
|
|
|
|
func (b *ProcessBillExcel) drawRemark() error {
|
|
|
// 填备注
|
|
|
+ b.Row++
|
|
|
remarkTitleCell := fmt.Sprintf("A%d", b.Row)
|
|
|
b.Excel.SetCellValue(b.SheetName, remarkTitleCell, "备注:")
|
|
|
b.Row++
|
|
|
|
|
|
remarkContentScell := fmt.Sprintf("A%d", b.Row)
|
|
|
// 预留五行备注内容 // TODO 获取内容换行符个数然后动态确定内容占用多少行单元格
|
|
|
- b.Row += 5
|
|
|
- remarkContentEcell := fmt.Sprintf("L%d", b.Row)
|
|
|
+ reg := regexp.MustCompile(`\n`)
|
|
|
+ remarkRowNum := len(reg.FindAllString(b.Content.Remark, -1)) + 1
|
|
|
+ b.Row += remarkRowNum
|
|
|
+ remarkContentEcell := fmt.Sprintf("J%d", b.Row)
|
|
|
b.Excel.MergeCell(b.SheetName, remarkContentScell, remarkContentEcell)
|
|
|
b.Excel.SetCellValue(b.SheetName, remarkContentScell, b.Content.Remark)
|
|
|
|
|
@@ -257,24 +263,24 @@ func (b *ProcessBillExcel) drawTableSignature() error {
|
|
|
})
|
|
|
|
|
|
// 制单人
|
|
|
- billUserCell := fmt.Sprintf("A%d", b.Row+3)
|
|
|
+ billUserCell := fmt.Sprintf("A%d", b.Row+1)
|
|
|
b.Excel.SetCellValue(b.SheetName, billUserCell, "制单人:")
|
|
|
- billUservCell := fmt.Sprintf("B%d", b.Row+3)
|
|
|
+ billUservCell := fmt.Sprintf("B%d", b.Row+1)
|
|
|
b.Excel.SetCellValue(b.SheetName, billUservCell, b.Content.UserName)
|
|
|
|
|
|
- fontCell := fmt.Sprintf("E%d", b.Row)
|
|
|
- imageCell1 := fmt.Sprintf("F%d", b.Row)
|
|
|
- imageCell2 := fmt.Sprintf("H%d", b.Row)
|
|
|
+ fontCell := fmt.Sprintf("F%d", b.Row)
|
|
|
+ imageCell1 := fmt.Sprintf("G%d", b.Row)
|
|
|
+ imageCell2 := fmt.Sprintf("I%d", b.Row)
|
|
|
eRow := b.Row + 2
|
|
|
- b.Excel.MergeCell(b.SheetName, fontCell, fmt.Sprintf("E%d", eRow))
|
|
|
+ b.Excel.MergeCell(b.SheetName, fontCell, fmt.Sprintf("F%d", eRow))
|
|
|
b.Excel.SetCellStyle(b.SheetName, fontCell, fontCell, style1)
|
|
|
b.Excel.SetCellValue(b.SheetName, fontCell, "审核签字:")
|
|
|
|
|
|
- b.Excel.MergeCell(b.SheetName, imageCell1, fmt.Sprintf("F%d", eRow))
|
|
|
+ b.Excel.MergeCell(b.SheetName, imageCell1, fmt.Sprintf("H%d", eRow))
|
|
|
b.Excel.SetCellStyle(b.SheetName, imageCell1, imageCell1, style1)
|
|
|
b.Excel.SetCellValue(b.SheetName, imageCell1, "")
|
|
|
|
|
|
- b.Excel.MergeCell(b.SheetName, imageCell2, fmt.Sprintf("H%d", eRow))
|
|
|
+ b.Excel.MergeCell(b.SheetName, imageCell2, fmt.Sprintf("J%d", eRow))
|
|
|
b.Excel.SetCellStyle(b.SheetName, imageCell2, imageCell1, style1)
|
|
|
b.Excel.SetCellValue(b.SheetName, imageCell2, "")
|
|
|
|
|
@@ -335,7 +341,7 @@ func NewProcessBill(f *excelize.File) *ProcessBillExcel {
|
|
|
Signatures: make([]*model.Signature, 0),
|
|
|
}
|
|
|
|
|
|
- f.SetColWidth(b.SheetName, "A", "I", 14)
|
|
|
+ f.SetColWidth(b.SheetName, "A", "J", 11.5)
|
|
|
f.SetPageMargins(b.SheetName, excelize.PageMarginTop(0), excelize.PageMarginLeft(0), excelize.PageMarginRight(0))
|
|
|
return b
|
|
|
}
|