使用 OpenXml 更改 Excel 工作表中的特定单元格背景颜色

Hak*_*ata 3 c# openxml-sdk

我的要求是更改 Excel 工作表中一行单元格的背景颜色。

例如:如果 A1 单元格值小于 100,我需要以红色背景显示它。

我搜索了很多,我找到了一些代码来创建样式表

http://blogs.msdn.com/b/chrisquon/archive/2009/11/30/stylizing-your-excel-worksheets-with-open-xml-2-0.aspx

该代码正在使用 StyleIndex 属性。而且它非常复杂。还有其他解决办法吗???????

Mar*_*ark 5

为了操作 OpenXML 格式的电子表格,原始 SDK 周围有几个包装器,使事情变得更加简单,例如

使用 ClosedXML,您可以使用条件格式来实现您想要的结果(请参阅文档):

using (var wb = new XLWorkbook())
{
    using (var ws = wb.AddWorksheet("Test"))
    {
        ws.Cell("A1").Value = 42;
        ws.Cell("A1").AddConditionalFormat().WhenLessThan(100)
            .Fill.SetBackgroundColor(XLColor.Red);
    }
    wb.SaveAs(@"C:\Dev\Test.xlsx");
}
Run Code Online (Sandbox Code Playgroud)