【发布时间】:2020-07-07 10:40:46
【问题描述】:
我正在使用 EPPlus 从数据表生成 excel 文件。我只有两行。我在第一行应用 % 格式,在第二行应用 $ 格式,但我的两行在前两行得到相同的 % 格式,这是错误的。我无法捕捉到发生这种情况的原因。为什么第二个格式没有应用到第二行是 $ 格式。
查看我使用范围应用格式的这一行。
ws.Cells["C0:P0"].Style.Numberformat.Format = "#,###,##0.0%;(#,###,##0.0%)";
ws.Cells["C1:P1"].Style.Numberformat.Format = "$##,##0.0;($##,##0.0)";
在上面的代码中,我提到了带有格式的单元格范围,但我的两行只获得了第一个格式和第二个格式没有考虑...不清楚为什么会这样?
示例代码
using (OfficeOpenXml.ExcelPackage obj = new OfficeOpenXml.ExcelPackage(FileLoc))
{
// creating work sheet object
OfficeOpenXml.ExcelWorksheet ws = obj.Workbook.Worksheets.Add("Vertical");
// freezing work sheet columns and rows
ws.View.FreezePanes(2, 3);
// exporting data to excel
ws.Cells["A1"].LoadFromDataTable(selected, true);
// setting calumns as autofit
ws.Cells[ws.Dimension.Address].AutoFitColumns();
//fixing height of column
ws.Row(1).Height = 16;
ws.Row(1).Style.Fill.PatternType = ExcelFillStyle.Solid;
ws.Row(1).Style.Fill.BackgroundColor.SetColor(Color.LightGray);
obj.Save();
ws.Cells["C0:P0"].Style.Numberformat.Format = "#,###,##0.0%;(#,###,##0.0%)";
ws.Cells["C1:P1"].Style.Numberformat.Format = "$##,##0.0;($##,##0.0)";
}
Excel 数据的屏幕截图。看到图片中的前两行,绝对理解 #,###,##0.0%;(#,###,##0.0%) 这种格式适用于前两行,但在我的代码我为第二条记录提供了不同的格式。
请帮助我找出我的代码中的错误之处。谢谢
【问题讨论】: