VB.NET生成Excel图表系列名称异常问题的排查与解决
问题:Excel图表系列名称仅最后一个生效,其余为默认值
我开发了一款用于能源计量的VB.NET应用程序,整体运行正常,但存在一个问题:程序可生成Excel表格和图表,表格与图表生成正常,但图表中的系列名称为默认名称(如Series1、Series2等),仅最后一个系列的名称与代码中设置的一致。
Excel表格截图:
异常图表截图:
原图表生成代码
Private Sub AddChart(Row As Integer, Columns As Integer) xlWorkSheet = xlWorkBook.Sheets(2) xlCharts = xlWorkSheet.ChartObjects myChart = xlCharts.Add(0, 0, 1000, 500) EnergyChart = myChart.Chart xlWorkSheet = xlWorkBook.Sheets(1) For i As Integer = 1 To Columns - 1 ColValue = ConvertNumberToString(i + 1) SeriesName(i) = xlWorkSheet.Range(ColValue & "3").Value chartRange = xlWorkSheet.Range("A4", ColValue & Row - 1) EnergyChart.SetSourceData(Source:=chartRange) Series = CType(EnergyChart.SeriesCollection(i), Excel.Series) Series.Name = SeriesName(i) Next With EnergyChart .HasTitle = True .ChartTitle.Font.Color = Color.SeaGreen .ChartTitle.Font.Size = 11 .ChartTitle.Font.Name = "Calibri" .ChartTitle.Text = ReportFileName .ChartType = Excel.XlChartType.xlLine End With End Sub
请问为何系列名称会变为默认值?感谢解答。
问题已解决
修改代码后运行正常,正常图表如下:
修改后的代码
Private Sub AddChart(Row As Integer, Columns As Integer) xlWorkSheet = xlWorkBook.Sheets(2) xlCharts = xlWorkSheet.ChartObjects myChart = xlCharts.Add(0, 0, 1000, 500) EnergyChart = myChart.Chart xlWorkSheet = xlWorkBook.Sheets(1) For i As Integer = 1 To Columns - 1 ColValue = ConvertNumberToString(i + 1) chartRange = xlWorkSheet.Range("A3", ColValue & Row - 1) EnergyChart.SetSourceData(chartRange) Series = CType(EnergyChart.SeriesCollection(1), Excel.Series) Next With EnergyChart .HasTitle = True .ChartTitle.Font.Color = Color.SeaGreen .ChartTitle.Font.Size = 11 .ChartTitle.Font.Name = "Calibri" .ChartTitle.Text = ReportFileName .ChartType = Excel.XlChartType.xlLine End With End Sub
内容的提问来源于stack exchange,提问作者robopavlik
相关产品推荐
相关产品推荐

