Excel: Каким образом можно создавать диаграммные группы?
У меня есть Chart
содержащая две ChartGroup
. Я никогда не делал этого намеренно, поэтому я не могу догадаться, что вызвало это. Может ли кто-нибудь дать все варианты (либо VBA, либо еще)?
Если я знаю, какие из возможных действий могут привести к этому, я могу знать и контролировать / избегать их.
PS: Недостатком этого является то, что у меня довольно много кода, который использует PlotOrder
для идентификации Series
. Когда имеется более одной ChartGroup
, PlotOrder
не является уникальным идентификатором Series
в Chart
(он уникален в ChartGroup
). В конечном итоге мне придется адаптировать мой код. Но пока я мог бы позаботиться о том, чтобы адаптировать мои диаграммы к одной ChartGroup
, насколько это возможно. Есть ли простой способ переназначить ChartGroup
Series
? (это сделало бы одну должность с двумя вопросами …)
- Как получить информацию о диаграмме из электронной таблицы Excel с помощью Apache POI?
- Как создать диаграмму Excel, которая извлекает данные из нескольких листов?
- Создание диаграммы Excel с использованием Apache POI
- C # удалить таблицу Excel
- C # SpreadSheetsLight axis
Этот вопрос вытекает из
Excel: дублированный PlotOrder для двух серий на диаграмме
EDIT : Я перечисляю здесь некоторые интересные выводы (которые вращаются вокруг этой темы, но не отвечают на конкретный вопрос).
-
Я нашел это на официальном сайте
ChartGroups Collection : « Коллекция всех объектов ChartGroup в указанной диаграмме. Каждый объект ChartGroup представляет одну или несколько серий, построенных на диаграмме с одним и тем же форматом». Даже если я не нашел это явно заявленным, кажется, что каждый
XlChartType
( типEnumeration
.ChartType
дляSeries
), очевидно, будет связан с данным форматом, например,xlXYScatter
с разбросом.Объект ChartGroup : « Представляет одну или несколько серий, построенных на диаграмме в том же формате ».
-
Все
Series
вChartGroup
должны иметь одинаковый « формат ». Но обратное утверждение неверно: вSeries
ChartGroup
можно иметьSeries
с одинаковым форматом. См. Пункт 3 и пример ниже. -
Из объекта ChartGroup : « Поскольку индексный номер для определенной группы диаграммы может измениться, если формат диаграммы, используемый для этой группы, будет изменен, может быть проще использовать один из методов ярлыков с названной группой диаграмм, чтобы вернуть определенную группу диаграмм. PieGroups метод возвращает коллекцию групп круговых диаграмм в диаграмме, метод LineGroups возвращает коллекцию групп линейных диаграмм и т. д. »Например, метод LineGroups .
Это позволяет указать пункт 2:
PieGroups
вернут коллекциюChartGroup
s. Там может быть более одной такойChartGroup
, и все серии будут иметь формат Pie. -
Доступные методы ярлыков группы с указанными диаграммами для возврата определенной группы диаграмм не являются исчерпывающими. Например, нет метода
XYScatterGroups
.
В качестве примера пункта 2 у меня есть диаграмма со всеми сериями с форматом XYScatter. 5 доступных XlChartType
s (с их числовыми значениями и описанием, в соответствии с перечислением XlChartType ) являются
xlXYScatter -4169 Scatter. xlXYScatterSmooth 72 Scatter with Smoothed Lines. xlXYScatterSmoothNoMarkers 73 Scatter with Smoothed Lines and No Data Markers. xlXYScatterLines 74 Scatter with Lines. xlXYScatterLinesNoMarkers 75 Scatter with Lines and No Data Markers.
На диаграмме есть 2 диаграммы, как показано в дампе (из пользовательского Sub)
ChartObject 'Chart 36', no. series: 6 * ChartGroup, .Index: 1, no. series: 2 ** plot order: 1, type: -4169, chart: 'Chart 36', chart type: 73, no. points: 17 ** plot order: 2, type: -4169, chart: 'Chart 36', chart type: -4169, no. points: 17 * ChartGroup, .Index: 2, no. series: 4 ** plot order: 1, type: -4169, chart: 'Chart 36', chart type: 75, no. points: 2 ** plot order: 2, type: -4169, chart: 'Chart 36', chart type: -4169, no. points: 24 ** plot order: 3, type: -4169, chart: 'Chart 36', chart type: 75, no. points: 33 ** plot order: 4, type: -4169, chart: 'Chart 36', chart type: -4169, no. points: 5
Обратите внимание, что в обеих ChartGroup
есть серия типа xlXYScatter
(-4169). Я мог бы изменить формат Series
2 ChartGroup
1 на любой из 5 типов, и он не изменил бы свою ChartGroup
.
- Диапазоны переменных Excel при создании диаграммы
- Нарисуйте график в excel от C #
- Блокировка данных в таблице Excel
- Экспоненциальное сглаживание в Excel для Mac?
- C # Excel диаграмма альтернативный текст
- Как экспортировать графики из Excel в виде графики
- в VBA Excel 2013, как я могу сделать FullSeriesCollection (1) .XValues и значения указывать на массив?
- C # Как обновить диаграмму Powerpoint без открытия Excel