在 excel C# 中设置点颜色会给出无效参数异常
本文关键字:无效 参数 异常 颜色 excel 设置 | 更新日期: 2024-10-31 09:31:22
Excel.SeriesCollection seriesCollection = chartPage.SeriesCollection();
Excel.Series series1 = seriesCollection.NewSeries();
series1.XValues = activeSheet.Range["E1", "E3"];
series1.Values = activeSheet.Range["F1", "F3"];
series1.Points(0).Format.Fill.ForeColor.RGB = Color.Green.ToArgb();
给出无效参数异常。
以下是详细信息:
System.Runtime.InteropServices.COMException was unhandled by user code
HResult=-2146827284
Message=Invalid Parameter
Source=S
ErrorCode=-2146827284
StackTrace:
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
at Microsoft.Office.Interop.Excel.Series.Points(Object Index)
at OMSS.BobStats.DrawFractionChart(Worksheet activeSheet, ChartObjects xlCharts, Range xRange, Range yRange) in c:'Users't-jasonj'Documents'Visual Studio 2012'Projects'BobStats'ExcelAddIn1'BobStats.cs:line 104
at OMSS.BobStats.DrawCharts(Worksheet activeSheet, Range range, Int32 length) in c:'Users't-jasonj'Documents'Visual Studio 2012'Projects'BobStats'ExcelAddIn1'BobStats.cs:line 66
at OMSS.BobStats.ThisAddIn_Startup(Object sender, EventArgs e) in c:'Users't-jasonj'Documents'Visual Studio 2012'Projects'BobStats'ExcelAddIn1'BobStats.cs:line 52
at Microsoft.Office.Tools.AddInImpl.OnStartup()
at Microsoft.Office.Tools.AddInImpl.AddInExtensionImpl.Microsoft.Office.Tools.EntryPoint.OnStartup()
at Microsoft.Office.Tools.AddInBase.OnStartup()
at OMSS.BobStats.FinishInitialization() in c:'Users't-jasonj'Documents'Visual Studio 2012'Projects'BobStats'ExcelAddIn1'BobStats.Designer.cs:line 59
at Microsoft.Office.Tools.AddInBase.Microsoft.Office.Tools.EntryPoint.FinishInitialization()
at Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.ExecutePhase(ExecutionPhases executionPhases)
at Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.Microsoft.VisualStudio.Tools.Office.Runtime.Interop.IExecuteCustomization2.ExecuteEntryPoints()
InnerException:
你要么使用
series1.Points(1).Format.Fill.ForeColor.RGB = System.Drawing.ColorTranslator.ToOle(Color.Green);
或
series1.Points(1).Format.Fill.ForeColor.RGB = Excel.XlRgbColor.rgbGreen
编辑:请注意,点是 1 索引而不是 0 索引。
它不喜欢 ToArgb() 中的 A。 使用 & 运算符来摆脱它:
series1.Points(1).Format.Fill.ForeColor.RGB = Color.Green.ToArgb() & 0xffffff;