Visual Studio 2015 打破 EPPlus 颜色

Visual Studio 2015 breaks EPPlus Colors

花了几个小时对此大惊小怪,直到我将其缩小到 VS 2015。这在 VS 2013 中工作得很好:

myWorksheet.Cells[1, 1].Style.Fill.BackgroundColor.SetColor(Color.LightGray);

但是在 VS 2015 中,虽然它编译得很好,但是当我 运行 解决方案时它抛出一个异常:

Color.LightGray = {System.NullReferenceException: Object reference not set to an instance of an object
at Microsoft.Win32.SystemEvents.AddEventHandler(Object key, Delegate value
at Microsoft.Win32.SystemEvents.add_UserPreferenceChanging(UserPreferenceChangingEventH...

是否有另一种指定颜色的方法?

问题不在于 VS 2015。如果我这样做:

using (var excel = new ExcelPackage())
{
    var ws = excel.Workbook.Worksheets.Add("sheet1");
    ws.Cells[1, 2].Value = "light grey";
    ws.Cells[1, 2].Style.Fill.PatternType = ExcelFillStyle.Solid;
    ws.Cells[1, 2].Style.Fill.BackgroundColor.SetColor(Color.LightGray);

    excel.SaveAs(new System.IO.FileInfo(@"C:\temp\temp.xlsx"));
}

然后我得到预期的输出:

这可能引发异常的几个可能原因:

  • 您是否先将填充的 .PatternType 属性 设置为 ExcelFillStyle.Solid
  • 您是否参考了 System.Drawing 以获取正确的目标框架? (这是在 VS 升级后发生的,这让我想知道您的引用是否针对 .NET 4.5 但您的项目针对更高版本?)。