在closexml保存方法中更改excel当前格式
本文关键字:excel 格式 closexml 保存 方法 | 更新日期: 2023-09-27 18:13:24
在我的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的格式相同,只是插入数据到其他工作表。
Excel通常会被欺骗将数字当作日期(因为在底层Excel将日期存储为数字)。要强制单元格为数字而不是日期,请尝试:
ws.Cell(row,col).SetValue<double>(Convert.ToDouble(val));
这里是关于ClosedXML单元格格式的官方文档。如果您需要保留百分比格式,例如"#"。##%"简单设置单元格格式:
ws.Cell(row, col).Style.NumberFormat.NumberFormatId = 10;
或未测试
ws.Cell(row, col).Style.NumberFormat.Format = "0.0%";
您必须在保存之前从应用程序中选择单元格数字格式。CLosedXml是一个基于OPENXML库的库,所以你必须应用OPENXML excel样式表来更改单元格数字格式。
这篇文章可能会对你有所帮助