diff --git a/excel/meter_reading.go b/excel/meter_reading.go index 69aaa40..082651f 100644 --- a/excel/meter_reading.go +++ b/excel/meter_reading.go @@ -89,7 +89,7 @@ func (g MeterReadingsExcelTemplateGenerator) WriteTemplateData(meters []*model.S return fmt.Errorf("未能设定标题行的高度,%w", err) } - dateTimeExp := "yyyy-mm-dd hh:mm;@" + dateTimeExp := "yyyy-mm-dd hh:mm" dateTimeColStyle, err := g.file.NewStyle(&excelize.Style{ CustomNumFmt: &dateTimeExp, }) @@ -97,9 +97,10 @@ func (g MeterReadingsExcelTemplateGenerator) WriteTemplateData(meters []*model.S g.log.Error("未能创建日期时间格式。", zap.Error(err)) return fmt.Errorf("未能创建日期时间格式,%w", err) } - g.file.SetCellStyle(defaultSheet, "B2", "B1048576", dateTimeColStyle) + endCellCoord, _ := excelize.CoordinatesToCellName(2, len(meters)+1) + g.file.SetCellStyle(defaultSheet, "B2", endCellCoord, dateTimeColStyle) - numExp := "0.0000;@" + numExp := "0.0000" numColStyle, err := g.file.NewStyle(&excelize.Style{ CustomNumFmt: &numExp, }) @@ -107,21 +108,12 @@ func (g MeterReadingsExcelTemplateGenerator) WriteTemplateData(meters []*model.S g.log.Error("未能创建抄表数字格式。", zap.Error(err)) return fmt.Errorf("未能创建抄表数字格式,%w", err) } - g.file.SetCellStyle(defaultSheet, "F2", "J1048576", numColStyle) - - stream, err := g.file.NewStreamWriter(defaultSheet) - if err != nil { - g.log.Error("未能创建流式写入器。", zap.Error(err)) - return fmt.Errorf("未能创建流式写入器,%w", err) - } + endCellCoord, _ = excelize.CoordinatesToCellName(9, len(meters)+1) + g.file.SetCellStyle(defaultSheet, "F2", endCellCoord, numColStyle) for i, meter := range meters { - startCell, err := excelize.CoordinatesToCellName(1, i+2) - if err != nil { - g.log.Error("未能定位输出数据的起始单元格。", zap.Error(err)) - return fmt.Errorf("未能定位输出数据的起始单元格,%w", err) - } - if err := stream.SetRow(startCell, []interface{}{ + cellCoord, _ := excelize.CoordinatesToCellName(1, i+2) + if err := g.file.SetSheetRow(defaultSheet, cellCoord, &[]interface{}{ meter.Seq, "", meter.Code, @@ -133,10 +125,6 @@ func (g MeterReadingsExcelTemplateGenerator) WriteTemplateData(meters []*model.S return fmt.Errorf("向模板写入数据出现错误,%w", err) } } - if err = stream.Flush(); err != nil { - g.log.Error("未能刷新流式写入器。", zap.Error(err)) - return fmt.Errorf("未能刷新流式写入器,%w", err) - } return err }