How to set a series names in code generated chart

Viewed 28

Good morning. I created a VB.NET application for Energy Measurement. All is OK, only one thing is a problem. In app, is code to create an excel table and also a chart. Table and chart are generated right, but series names in the chart are with default series names (e.g.: Series1, Series2... etc.). Only the last series has the right name what I set in code (I set all, but they are changed).

Excel Table

Chart

My code for the chart is:

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

Could you please someone tell me why series names are changed to default? Thank you all.

SOLVED: After code modification it's working right.

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

Chart OK

0 Answers
Related