使用NPOI的Excel:获取Cell的样式(backgroundcolor)

时间:2016-05-30 12:35:59

标签: c# excel npoi

我正在使用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属性因所有单元格而异

提前致谢, 弗兰克

1 个答案:

答案 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;