在我的C#应用程序中,我使用ClosedXml .Excel来处理excel文件。 我有一个excel模板,我将模板添加到应用程序中并将数据添加到Excel工作表并保存excel,如下所示,
wb = new XLWorkbook(exportOption.FileName);
---
if (wb.Worksheets.Count > 0)
{
for (int i = 0; i < wb.Worksheets.Count; i++)
{
using (var ws = wb.Worksheet(i + 1))
{
if (ws.Visibility == XLWorksheetVisibility.Visible)
{
ws.SetTabActive();
break;
}
}
}
}
try
{
wb.CalculateMode = XLCalculateMode.Auto;
wb.SaveAs(exportOption.FileName);
}
保存更改后,我的excel格式也会与其他工作表完全一致。 例如,在一张表中,我有百分比格式,它更改为日期格式。 如何保持excel格式相同,只需将数据插入其他工作表。
答案 0 :(得分:0)
Excel常用于将数字视为日期(在引擎盖下Excel将日期存储为数字)。要强制单元格为数字而不是日期,请尝试:
ws.Cell(row,col).SetValue<double>(Convert.ToDouble(val));
以下是ClosedXML Cell Formatting的官方文档。 如果您需要将格式保留为百分比,例如“#。 ##%”,只需设置单元格格式:
ws.Cell(row, col).Style.NumberFormat.NumberFormatId = 10;
或未经测试
ws.Cell(row, col).Style.NumberFormat.Format = "0.0%";
答案 1 :(得分:0)
在保存之前,您必须从应用中选择单元格数字格式。 CLosedXml是一个基于OPENXML库的库,因此您必须应用OpenXml Excel样式表来更改单元格数字格式。
这是Article,可以帮助您