我正在使用NPOI用C#解析Excel文件(VS 2013)。我想得到一个单元格的背景颜色,我这样做:
IEnumerator rows = sheet.GetRowEnumerator();
while (rows.MoveNext())
{
IRow row = (IRow)rows.Current;
foreach (ICell cell in row.Cells)
{
if (cell.CellStyle.FillBackgroundColor == 64)
{
...
}
}
}
问题是,无论细胞的背景颜色如何(黄色,绿色,根本没有颜色),FillBackgroundColor的值总是64.所以看来,那不是那个地方,颜色存储。我怎么得到它?
Edith说:cell.CellStyle.Index属性因所有单元格而异
提前致谢, 弗兰克
答案 0 :(得分:1)
原因是,在Excel中,CellStyle.FillBackgroundColor不是Cell的FillColor。要检查它,首先确保它有一个Fill(CellStyle.FillPattern),然后检查CellStyle.FillForegroundColorColor属性。 f.e。
if (cell.CellStyle.FillPattern == FillPattern.SolidForeground)
byte[] cellBackground = cell.CellStyle.FillForegroundColorColor.RGB;