使用EPPlus库检查Excel文件的背景颜色

时间:2013-05-30 04:57:42

标签: c# epplus

我正在使用开源EPPlus库,它允许您读取Excel等电子表格文件。现在,我有一个Excel文件,但我想在获取单元格的值之前检查单元格的Background Color。但是,我不知道要使用enum。以下是我的示例代码:

            using (var package = new ExcelPackage(excelFile))
            {
                ExcelWorkbook workbook = package.Workbook;

                ExcelWorksheet currentWorksheet = workbook.Worksheets.First();

                ExcelRange theCell = currentWorksheet.Cells[8, 1];
                if (theCell.Style.Fill.BackgroundColor == whatShouldBeTheEnumHere)
                {
                  String getValue = theCell.Value.ToString();
                }

            }

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我得到了自己问题的答案:-)我发现BackgroundColor有一个RGB属性,这就是我用来获取我想要测试的颜色值。这是代码

        using (var package = new ExcelPackage(excelFile))
        {
            ExcelWorkbook workbook = package.Workbook;

            ExcelWorksheet currentWorksheet = workbook.Worksheets.First();

            ExcelRange theCell = currentWorksheet.Cells[8, 1];
            if (theCell.Style.Fill.BackgroundColor.Rgb == Color.Yellow.A.ToString("X2") + Color.Yellow.R.ToString("X2") + Color.Yellow.G.ToString("X2") + Color.Yellow.B.ToString("X2"))
            {
              String getValue = theCell.Value.ToString();
            }

        }

当然我可以使用函数返回HexValue,如

   if (theCell.Style.Fill.BackgroundColor.Rgb == ColorHexValue(Color.Yellow))
      {
        String getValue = theCell.Value.ToString();
      }

function返回十六进制值:

   private String ColorHexValue(System.Drawing.Color C)
    {
        return C.A.ToString("X2") + C.R.ToString("X2") + C.G.ToString("X2") + C.B.ToString("X2");
    }