feature: init high_opt_loss
parent
d71be599b8
commit
b74c01e08a
@ -0,0 +1,80 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"cu-helper/high-opt-loss/service"
|
||||
"fmt"
|
||||
"github.com/mizuki1412/go-core-kit/service/logkit"
|
||||
"github.com/spf13/cast"
|
||||
"github.com/xuri/excelize/v2"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func GenExcelFile(m map[string]*service.HighOptLoss) {
|
||||
// Open the Excel file
|
||||
f, err := excelize.OpenFile("/Users/leo/Documents/大光衰通报模板.xlsx")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
// Cut and paste data from E4:E22 to C4:C22
|
||||
for i := 4; i <= 22; i++ {
|
||||
eCell := "E" + strconv.Itoa(i)
|
||||
cCell := "C" + strconv.Itoa(i)
|
||||
value, _ := f.GetCellValue("汇总", eCell)
|
||||
f.SetCellValue("汇总", cCell, cast.ToInt(value))
|
||||
f.SetCellValue("汇总", eCell, "")
|
||||
}
|
||||
|
||||
// Populate E4:H22 with data from the map
|
||||
for i := 4; i <= 22; i++ {
|
||||
bCell := "B" + strconv.Itoa(i)
|
||||
key, _ := f.GetCellValue("汇总", bCell)
|
||||
if data, ok := m[key]; ok {
|
||||
f.SetCellValue("汇总", "E"+strconv.Itoa(i), data.Count)
|
||||
f.SetCellValue("汇总", "F"+strconv.Itoa(i), data.DurationOverSeven)
|
||||
f.SetCellValue("汇总", "G"+strconv.Itoa(i), data.DurationOverFifteen)
|
||||
f.SetCellValue("汇总", "H"+strconv.Itoa(i), data.Book)
|
||||
} else {
|
||||
f.SetCellValue("汇总", "E"+strconv.Itoa(i), 0)
|
||||
f.SetCellValue("汇总", "F"+strconv.Itoa(i), 0)
|
||||
f.SetCellValue("汇总", "G"+strconv.Itoa(i), 0)
|
||||
f.SetCellValue("汇总", "H"+strconv.Itoa(i), 0)
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate D4:D22 as C-E
|
||||
for i := 4; i <= 22; i++ {
|
||||
cCell := "C" + strconv.Itoa(i)
|
||||
eCell := "E" + strconv.Itoa(i)
|
||||
dCell := "D" + strconv.Itoa(i)
|
||||
cValue, _ := f.GetCellValue("汇总", cCell)
|
||||
eValue, _ := f.GetCellValue("汇总", eCell)
|
||||
cInt, _ := strconv.Atoi(cValue)
|
||||
eInt, _ := strconv.Atoi(eValue)
|
||||
f.SetCellValue("汇总", dCell, cInt-eInt)
|
||||
}
|
||||
// Sum columns C:H and place the results in row 23
|
||||
for col := 'C'; col <= 'H'; col++ {
|
||||
sumCell := string(col) + "23"
|
||||
sumFormula := fmt.Sprintf("SUM(%s4:%s22)", string(col), string(col))
|
||||
f.SetCellFormula("汇总", sumCell, sumFormula)
|
||||
}
|
||||
|
||||
// Recalculate the sum for each cell to ensure it appears without manual intervention
|
||||
for col := 'C'; col <= 'H'; col++ {
|
||||
sumCell := string(col) + "23"
|
||||
value, err := f.CalcCellValue("汇总", sumCell)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
} else {
|
||||
f.SetCellValue("汇总", sumCell, cast.ToInt(value))
|
||||
}
|
||||
}
|
||||
|
||||
// Save the file
|
||||
if err := f.SaveAs("/Users/leo/Documents/大光衰通报模板.xlsx"); err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
logkit.Info("生成结束...")
|
||||
}
|
||||
Loading…
Reference in New Issue