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 但您的项目针对更高版本?)。
花了几个小时对此大惊小怪,直到我将其缩小到 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 但您的项目针对更高版本?)。