Как создать диаграмму с несколькими сериями в Excel из VB.Net - PullRequest
0 голосов
/ 27 апреля 2020

Доброе утро.

У меня есть программа на VB. Net, из которой я создаю документ в Excel, в этот документ я ввожу данные из VB. Net для ячеек, из которых Я хочу сделать график. Идея состоит в том, чтобы сделать точечный сюжет, но с несколькими сериями. Если я объявляю значения «x» и «y» для одной серии, график идет гладко, но когда я пытаюсь ввести другую, график просто не загружается. У меня есть следующий код:

    Dim oChart As Excel.Chart
    Dim MyCharts As Excel.ChartObjects
    Dim MyCharts1 As Excel.ChartObject
    MyCharts = oleave.ChartObjects
    MyCharts1 = MyCharts.Add(150, 30, 300, 150)
    oChart = MyCharts1.Chart
    .ChartType = Excel.XlChartType.xlXYScatterLines

    Dim Via As Excel.Range
    Dim Terreno As Excel.Range
    Via = oleave.Range("A4", "B7")
    Terreno = oleave.Range("A10", "B12")
    .SetSourceData(Via)

    Via = .SeriesCollection.NewSeries()
    Terreno = .SeriesCollection.NewSeries()

    .SeriesCollection(1).Values = oleave.Range("A4", "A7")
    .SeriesCollection(1).YValues = oleave.Range("B4", "B7")
    .SeriesCollection(2).Values = oleave.Range("A10", "A12")
    .SeriesCollection(2).YValues = oleave.Range("B10", "B12")

Для "Via", который является первым графиком c, все работает нормально. Для «Terrain», который является вторым, если я добавлю его в «.SetSourceData ()» рядом с «Via», график не загружается. Если я оставлю код как есть, просто с помощью «Via» в «SetSourceData ()», документ Excel будет создан плавно, ячейки заполнены и «сквозь» сгенерированы плавно.

Я хотел бы знать, как я Можно решить эту проблему, я искал Inte rnet в течение нескольких дней, но большая часть информации предназначена для VBA, и она не работает для меня, или я не смог адаптировать ее. Кроме того, если кто-то знает библиографический c источник, где это можно прочитать правильно, я был бы признателен. Онлайновый справочник довольно лаконичен, и остается только часами просматривать форумы, но я полагаю, что должна быть книга, в которой подробно обсуждается каждая из этих функций.

Я заранее благодарен за любую помощь в этом График вопроса. Спасибо.

Вы можете сказать, что я должен искать здесь ответы, прежде чем спрашивать ... Я сделал, все, что я нашел близко к моей проблеме, это сообщение: Добавление нескольких серий данных в диаграмму Excel из VB . Net И ... я не могу заставить его работать.

Спасибо.


ОБНОВЛЕНО

Это весь код внутри раздела «С ... Конец»:

 With oChart
        .ChartType = Excel.XlChartType.xlXYScatterLines
        Dim Via As Excel.Range
        Dim Terreno As Excel.Range
        Via = oleave.Range("A4", "B7")
        Terreno = oleave.Range("A10", "B12")
        .SetSourceData(Via, Terreno)

        .SeriesCollection(1).Values = oleave.Range("A4", "A7")
        .SeriesCollection(1).YValues = oleave.Range("B4", "B7")
        .SeriesCollection(2).Values = oleave.Range("A10", "A12")
        .SeriesCollection(2).YValues = oleave.Range("B10", "B12")

        .ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowNone)

        .HasLegend = True
         .Legend.Position = Excel.XlLegendPosition.xlLegendPositionRight
        .HasTitle = True
        .ChartTitle.Text = "ABSCISA 1"

        Dim xlAxisCategory, xlAxisValue As Excel.Axes
        xlAxisCategory = CType(oChart.Axes(, Excel.XlAxisGroup.xlPrimary), Excel.Axes)
        xlAxisCategory.Item(Excel.XlAxisType.xlCategory).HasTitle = True
        xlAxisCategory.Item(Excel.XlAxisType.xlCategory).AxisTitle.Characters.Text = "Vía"
        xlAxisValue = CType(oChart.Axes(, Excel.XlAxisGroup.xlPrimary), Excel.Axes)
        xlAxisValue.Item(Excel.XlAxisType.xlValue).HasTitle = True
        xlAxisValue.Item(Excel.XlAxisType.xlValue).AxisTitle.Characters.Text = "TERRENO"
 End With

Спасибо.

...