在Closedxml SaveAs方法中更改excel的当前格式

时间:2016-10-17 09:19:03

标签: c# .net excel

在我的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格式相同,只需将数据插入其他工作表。

2 个答案:

答案 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,可以帮助您