редактирование диапазона данных диаграммы Excel с помощью C # - PullRequest
0 голосов
/ 22 марта 2011

Я пытаюсь создать точную диаграмму Excel, используя Microsoft.Office.Interop.Excel.У меня есть 2 диапазона данных

 Range chartRange1 = xlWorkSheet.Range["A1", "B5"];
 Range chartRange2 = xlWorkSheet.Range["A6", "B10"];

для 2 наборов точек.Столбец «A» указывает координаты x, а столбец «B» определяет координаты y.Когда я создаю диаграмму таким образом:

        chartPage.ChartType = Excel.XlChartType.xlXYScatter;

        var seriesCol = chartPage.SeriesCollection(misValue);

        seriesCol.add(chartRange1, misValue, misValue, misValue, misValue);
        seriesCol.add(chartRange2, misValue, misValue, misValue, misValue);

я получаю 4 набора точек с координатами x от 1 до 5 и координатой y, заданными диапазонами A1 - A5, B1 - B5, A6 - A10, B6 - B10.

Как получить, чтобы диаграмма содержала 2 набора точек с координатами x, определенными в столбце «A», и координатами y, определенными в «B»?

Спасибо!

1 Ответ

0 голосов
/ 23 марта 2011

Вам придется перевести это из VBA в ваш собственный синтаксис.

Метод Add объекта SeriesCollection выглядит следующим образом:

Function Add(Source, [Rowcol As XlRowCol = xlColumns], 
[SeriesLabels], [CategoryLabels], [Replace]) As Series

Вы хотите добавить только одну серию, а не две, как вы сделали. Таким образом, вам нужно определить диапазон на основе объединения ваших двух диапазонов. В VBA:

Set ChartRange = Union(ChartRange1, ChartRange2)

Тогда вы, вероятно, можете использовать (в своем синтаксисе)

seriesCol.add(chartRange, misValue, misValue, True, misValue);

где я использовал True для значения CategoryLabels, чтобы заставить Excel использовать первый столбец в качестве значений X.

Иногда в VBA с новым графиком это работает не совсем правильно. В этом случае вам необходимо добавить ряд, используя значения Y, а затем применить значения X. Первая строка - ваш синтаксис, вторая - чистый VBA.

seriesCol.add(chartRange2, misValue, misValue, misValue, misValue);

seriesCol(1).XValues = ChartRange1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...