Работа с диаграммами
Работа с диаграммами
Aspose.Cells FOSS for Java сохраняет встроенные диаграммы при загрузке и сохранении XLSX-рабочих книг. Вы можете просматривать существующие диаграммы, запрашивать их тип и позицию, а также программно добавлять новые диаграммы стандартных типов. ChartEx типы, такие как Waterfall, Treemap, Sunburst, Histogram, Box and Whisker, Funnel и Map, сохраняются при круговом проходе, но не могут быть созданы через API.
Обзор
Диаграммы в листе управляются через ChartCollection, доступный через Worksheet.getCharts(). Каждый экземпляр Chart раскрывает своё имя, тип диаграммы и позицию привязки в две ячейки. Новая диаграмма вставляется с помощью ChartCollection.add(type, dataRange, upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn), который возвращает индекс вновь созданной диаграммы.
Перечисление ChartType определяет вариант диаграммы (столбчатая, линейная, круговая и т.д.). Вспомогательные методы ChartCollection.parseChartType(string) и ChartCollection.chartTypeToString(ChartType) преобразуют между перечислением и его строковым представлением для случаев сериализации.
Ключевые классы
| Класс | Описание: |
|---|---|
Chart | Представляет встроенную диаграмму в листе. Предоставляет доступ только для чтения к имени, типу и позиции привязки к ячейке. |
ChartCollection | Коллекция всех диаграмм на листе. Поддерживает подсчёт, доступ по индексу, добавление и вспомогательные функции преобразования типов диаграмм. |
ChartType | Перечисление, идентифицирующее вариант диаграммы (bar, column, line, pie, scatter и т.д.). |
ChartModel | Внутренняя модель сериализации для диаграммы. Предоставляет необработанные поля XML, используемые при загрузке/сохранении. |
Доступ к диаграммам на листе
Получите ChartCollection из любого объекта Worksheet через Worksheet.getCharts(). Используйте ChartCollection.getCount(), чтобы определить количество присутствующих диаграмм. Отдельные диаграммы доступны по нулевому индексу через ChartCollection.get(index).
Как только у вас есть ссылка Chart, вы можете прочитать:
Chart.getName()— строка внутреннего имени диаграммы.Chart.getChartType()— значение перечисленияChartType.Chart.getUpperLeftRow()/Chart.getUpperLeftColumn()— ячейка привязки в левом верхнем углу.Chart.getLowerRightRow()/Chart.getLowerRightColumn()— ячейка привязки в правом нижнем углу.Chart.getExtentCx()/Chart.getExtentCy()— размеры диаграммы в EMU.
Добавление новой диаграммы
Используйте ChartCollection.add(type, dataRange, upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn) для вставки новой диаграммы. Метод возвращает целочисленный индекс диаграммы в коллекции. Укажите значение ChartType для аргумента type и строку диапазона ячеек (например A1:B5) для dataRange.
Примечание: типы семейства ChartEx (Waterfall, Treemap, Sunburst, Histogram, Box and Whisker, Funnel, Map) сохраняются при загрузке файлов XLSX, но не могут быть созданы программно через этот API.
API Reference Сводка
Chart
| Метод | Тип возврата | Описание: |
|---|---|---|
getName() | String | Внутреннее имя диаграммы. |
getChartType() | ChartType | Значение перечисления варианта диаграммы. |
getUpperLeftRow() | int | Индекс строки верхнего левого якоря. |
getUpperLeftColumn() | int | Индекс столбца верхнего левого якоря. |
getLowerRightRow() | int | Индекс строки нижнего правого якоря. |
getLowerRightColumn() | int | Индекс столбца правого нижнего якоря. |
getExtentCx() | long | Ширина диаграммы в EMUs. |
getExtentCy() | long | Высота диаграммы в EMUs. |
ChartCollection
| Метод | Тип возврата | Описание: |
|---|---|---|
getCount() | int | Количество диаграмм на листе. |
get(index) | Chart | Возвращает диаграмму по заданному индексу, начиная с нуля. |
add(type, dataRange, ...) | int | Добавляет новую диаграмму; возвращает её индекс. |
parseChartType(string) | ChartType | Преобразует строковое имя в значение перечисления ChartType. |
chartTypeToString(type) | String | Преобразует значение перечисления ChartType в его строковое имя. |
Ограничения
- Типы ChartEx (Waterfall, Treemap, Sunburst, Histogram, Box and Whisker, Funnel, Map) передаются без изменений, но не могут быть созданы через API.
- Привязки данных серии диаграммы не могут быть изменены в этой версии; диаграмма отображается на основе исходного диапазона данных, предоставленного при создании.