2013-05-06 99 views
1

我需要更改Excel工作表中一行中单元格的背景颜色。例如:如果A1单元格值小于100,我需要在红色背景中显示它。使用OpenXml更改Excel工作表中的特定单元格背景颜色

我搜索了很多,我发现了一些代码来使用StyleIndex财产从这个

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

代码创建样式表。而且非常复杂。 有没有其他的解决方案...... ???????

+1

的OpenXML的确可以称为ChaosXml 。我不认为你会找到一个更简单的解决方案。看[这里](http://stackoverflow.com/questions/9004848/working-with-office-open-xml-just-how-hard-is-it):/ – 2013-05-06 11:14:52

回答

2

为了处理OpenXML格式的电子表格,围绕原始SDK的几个包装使事情变得更加简单,例如,

使用ClosedXML你可以使用条件格式来实现你想要的结果(见documentation):

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"); 
} 
相关问题