Настройка диаграмм

Создание диаграмм

С помощью Aspose.Cells можно добавлять различные диаграммы в электронные таблицы. Aspose.Cells предоставляет множество гибких объектов диаграмм. В этом разделе обсуждаются объекты диаграммы Aspose.Cells'.

Простое создание диаграммы

Создать диаграмму с номером Aspose.Cells очень просто, используя следующие примеры кодов:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the output directory.
Workbook workbook = new Workbook();
// Obtaining the reference of the first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
// Adding sample values to cells
worksheet.getCells().get("A2").putValue("Category1");
worksheet.getCells().get("A3").putValue("Category2");
worksheet.getCells().get("A4").putValue("Category3");
worksheet.getCells().get("B1").putValue("Column1");
worksheet.getCells().get("B2").putValue(4);
worksheet.getCells().get("B3").putValue(20);
worksheet.getCells().get("B4").putValue(50);
worksheet.getCells().get("C1").putValue("Column2");
worksheet.getCells().get("C2").putValue(50);
worksheet.getCells().get("C3").putValue(100);
worksheet.getCells().get("C4").putValue(150);
// Adding a chart to the worksheet
int chartIndex = worksheet.getCharts().add(ChartType.COLUMN, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
Chart chart = worksheet.getCharts().get(chartIndex);
// Setting chart data source as the range "A1:C4"
chart.setChartDataRange("A1:C4", true);
workbook.save( "ColumnChart.xlsx", SaveFormat.XLSX);

Что нужно знать для создания диаграммы

Перед созданием диаграмм важно понять некоторые основные понятия, которые будут полезны при создании диаграмм с помощью Aspose.Cells.

Объекты диаграммы

Aspose.Cells предоставляет специальный набор классов, используемых для создания всех видов диаграмм. Эти классы используются для созданияграфические объекты, которые действуют как строительные блоки диаграммы. Объекты диаграммы перечислены ниже:

Использование объектов диаграммы

Как упоминалось выше, все объекты диаграммы являются экземплярами соответствующих классов и предоставляют определенные свойства и методы для выполнения определенных задач. Используйте объекты диаграммы для создания диаграмм.

Добавьте любой тип диаграммы на рабочий лист, используяChartCollection коллекция. Каждый элемент вChartCollection коллекция представляет собойДиаграмма объект. АДиаграммаОбъект инкапсулирует все объекты диаграммы, необходимые для настройки внешнего вида диаграммы. В следующем разделе показано, как использовать несколько основных объектов диаграммы для создания простой диаграммы.

Создание простой диаграммы

С помощью Aspose.Cells можно создать множество различных типов диаграмм. Все стандартные диаграммы, поддерживаемые Aspose.Cells, предварительно определены в перечислении с именемТип диаграммы. Предустановленные типы диаграмм:

Типы диаграмм Описание
Столбец Представляет кластеризованную столбчатую диаграмму
КолонкаС накоплением Представляет столбчатую диаграмму с накоплением
Столбец100PercentStacked Представляет столбчатую диаграмму с накоплением на 100 %
Column3DClustered Представляет 3D кластеризованную столбчатую диаграмму
Столбец3DStacked Представляет трехмерную столбчатую диаграмму с накоплением
Столбец3D100PercentStacked Представляет трехмерную столбчатую диаграмму со 100% накоплением
Колонка3D Представляет трехмерную столбчатую диаграмму
Бар Представляет кластеризованную гистограмму
БарСложенный Представляет столбчатую диаграмму с накоплением
Bar100PercentStacked Представляет гистограмму со 100% накоплением
Bar3DCкластеризованный Представляет трехмерную кластеризованную гистограмму
Bar3DStacked Представляет трехмерную линейчатую диаграмму с накоплением
Bar3D100PercentStacked Представляет трехмерную линейчатую диаграмму со 100% накоплением
Линия Представляет линейную диаграмму
LineStacked Представляет составную линейную диаграмму
Line100PercentStacked Представляет 100% линейную диаграмму с накоплением
LineWithDataMarkers Представляет линейную диаграмму с маркерами данных
LineStackedWithDataMarkers Представляет составную линейную диаграмму с маркерами данных
Line100PercentStackedWithDataMarkers Представляет линейную диаграмму с накоплением 100% с маркерами данных
Линия3D Представляет трехмерную линейную диаграмму
пирог Представляет круговую диаграмму
Пирог3D Представляет трехмерную круговую диаграмму
пирог пирог Представляет круговую диаграмму
ПирогВзорван Представляет развернутую круговую диаграмму
Pie3DВзорван Представляет трехмерную развернутую круговую диаграмму
Пиг-Бар Представляет гистограмму круговой диаграммы
Разброс Представляет точечную диаграмму
ScatterConnectedByCurvesWithDataMarker Представляет точечную диаграмму, соединенную кривыми, с маркерами данных.
ScatterConnectedByCurvesWithoutDataMarker Представляет точечную диаграмму, соединенную кривыми, без маркеров данных.
ScatterConnectedByLinesWithDataMarker Представляет точечную диаграмму, соединенную линиями, с маркерами данных.
ScatterConnectedByLinesWithoutDataMarker Представляет точечную диаграмму, соединенную линиями, без маркеров данных.
Площадь Представляет диаграмму областей
ПлощадьСложенный Представляет составную диаграмму с областями
Area100PercentStacked Представляет 100% диаграмму областей с накоплением
Площадь3D Представляет трехмерную диаграмму с областями
Площадь3DС накоплением Представляет трехмерную диаграмму с накоплением областей
Area3D100PercentStacked Представляет трехмерную диаграмму с областями со 100% накоплением
Пончик Представляет кольцевую диаграмму
ПончикВзорван Представляет развернутую кольцевую диаграмму
Радар Представляет радарную диаграмму
Радарвисдатамаркерс Представляет радарную диаграмму с маркерами данных
Радар заполнен Представляет заполненную радиолокационную диаграмму
Поверхность3D Представляет трехмерную поверхностную диаграмму
ПоверхностьКаркас3D Представляет каркасную трехмерную поверхностную диаграмму.
ПоверхностьКонтур Представляет контурную диаграмму
ПоверхностьКонтурКаркас Представляет контурную диаграмму каркаса
Пузырь Представляет пузырьковую диаграмму
Пузырь3D Представляет трехмерную пузырьковую диаграмму
Цилиндр Представляет цилиндрическую диаграмму
ЦилиндрСложенный Представляет составную цилиндрическую диаграмму
Цилиндр100PercentStacked Представляет 100%-ную цилиндрическую диаграмму с накоплением
ЦилиндрическийБар Представляет собой цилиндрическую гистограмму.
ЦилиндрическийБарС накоплением Представляет цилиндрическую гистограмму с накоплением
ЦилиндрическийBar100PercentStacked Представляет цилиндрическую гистограмму со 100% накоплением
ЦилиндрическаяКолонка3D Представляет трехмерную цилиндрическую столбчатую диаграмму
Конус Представляет конусную диаграмму
КонусСложенный Представляет составную конусную диаграмму
конус100процентов Представляет конусную диаграмму со 100% накоплением
КоническийБар Представляет коническую гистограмму
КоническийБарС накоплением Представляет составную коническую гистограмму
ConicalBar100PercentStacked Представляет 100%-ную коническую гистограмму с накоплением
КоническаяКолонна3D Представляет трехмерную коническую столбчатую диаграмму
Пирамида Представляет пирамидальную диаграмму
ПирамидаСложенный Представляет пирамидальную диаграмму с накоплением
Пирамида100PercentStacked Представляет 100% пирамидальную диаграмму с накоплением
ПирамидаБар Представляет гистограмму пирамиды
ПирамидаБарС накоплением Представляет гистограмму с накоплением пирамиды
PyramidBar100PercentStacked Представляет гистограмму пирамидальной гистограммы со 100% накоплением
ПирамидаКолонка3D Представляет гистограмму трехмерной пирамиды
Чтобы создать диаграмму с помощью Aspose.Cells:
  1. Добавьте некоторые данные в ячейки листа с помощьюCell объектыустановить значениеметод. Это будет использоваться в качестве источника данных для диаграммы.
  2. Добавьте диаграмму на лист, вызвав методChartCollection коллекцияДобавлять, инкапсулированный вРабочий листобъект.
  3. Укажите тип диаграммы с помощьюТип диаграммыперечисление. Например, в примере используетсяChartType.PYRAMIDзначение в качестве типа диаграммы.
  4. Доступ к новымДиаграмма объект изChartCollectionколлекции, передав ее индекс.
  5. Используйте любой из объектов диаграммы, инкапсулированных вДиаграммаобъект для управления диаграммой. В приведенном ниже примере используетсяСерияКоллекцияобъект диаграммы, чтобы указать источник данных диаграммы.

При добавлении исходных данных на диаграмму источником данных может быть диапазон ячеек (например, «A1:C3»), последовательность несмежных ячеек (например, «A1, A3, A5») или последовательность ячеек. значения (например, “1,2,3”).

Эти общие шаги позволяют создавать диаграммы любого типа. Используйте разные объекты диаграмм для создания разных диаграмм.

При выполнении примера кода на рабочий лист добавляется пирамидальная диаграмма, как показано ниже.

Пирамидальная диаграмма с ее источником данных

дело:изображение_альтернативный_текст

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(HowToCreatePyramidChart.class) + "charts/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Obtaining the reference of the first worksheet
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);
// Adding some sample value to cells
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(180);
cell = cells.get("C1");
cell.setValue(320);
cell = cells.get("C2");
cell.setValue(110);
cell = cells.get("C3");
cell.setValue(180);
cell = cells.get("D1");
cell.setValue(40);
cell = cells.get("D2");
cell.setValue(120);
cell = cells.get("D3");
cell.setValue(250);
ChartCollection charts = sheet.getCharts();
// Adding a chart to the worksheet
int chartIndex = charts.add(ChartType.PYRAMID, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);
// Adding NSeries (chart data source) to the chart ranging from "A1"
// cell to "B3"
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);
// Saving the Excel file
workbook.save(dataDir + "HToCPyramidChart_out.xls");
// Print message
System.out.println("Pyramid chart is successfully created.");

Чтобы создать пузырьковую диаграмму,Тип диаграммыдолжен быть установлен наChartType.BUBBLEи несколько дополнительных свойств, таких как BubbleSizes, Values и XValues, должны быть установлены соответствующим образом. После выполнения следующего кода на рабочий лист добавляется пузырьковая диаграмма, как показано ниже.

Пузырьковая диаграмма с источником данных

дело:изображение_альтернативный_текст

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(HowToCreateBubbleChart.class) + "charts/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Obtaining the reference of the first worksheet
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);
// Adding some sample value to cells
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(180);
cell = cells.get("C1");
cell.setValue(320);
cell = cells.get("C2");
cell.setValue(110);
cell = cells.get("C3");
cell.setValue(180);
cell = cells.get("D1");
cell.setValue(40);
cell = cells.get("D2");
cell.setValue(120);
cell = cells.get("D3");
cell.setValue(250);
ChartCollection charts = sheet.getCharts();
// Adding a chart to the worksheet
int chartIndex = charts.add(ChartType.BUBBLE, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);
// Adding NSeries (chart data source) to the chart ranging from "A1"
// cell to "B3"
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);
// Set bubble sizes
chart.getNSeries().get(0).setBubbleSizes("B2:D2");
chart.getNSeries().get(0).setXValues("B3:D3");
chart.getNSeries().get(0).setValues("B1:D1");
// Saving the Excel file
workbook.save(dataDir + "HToCrBChart_out.xls");
// Print message
System.out.println("Bubble chart is successfully created.");

Линия с диаграммой маркеров данных

Чтобы создать линию с диаграммой маркеров данных,Тип диаграммыдолжен быть установлен наChartType.LINE_WITH_DATA_MARKERS и несколько дополнительных свойств, таких как фоновая область, маркеры серии, значения и XValues, должны быть установлены соответствующим образом. После выполнения следующего кода на лист добавляется строка с диаграммой маркеров данных.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// Instantiate a workbook
Workbook workbook = new Workbook();
// Access first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
// Set columns title
worksheet.getCells().get(0, 0).setValue("X");
worksheet.getCells().get(0, 1).setValue("Y");
// Create random data and save in the cells
for (int i = 1; i < 21; i++)
{
worksheet.getCells().get(i, 0).setValue(i);
worksheet.getCells().get(i, 1).setValue(0.8);
}
for (int i = 21; i < 41; i++)
{
worksheet.getCells().get(i, 0).setValue(i - 20);
worksheet.getCells().get(i, 1).setValue(0.9);
}
// Add a chart to the worksheet
int idx = worksheet.getCharts().add(ChartType.LINE_WITH_DATA_MARKERS, 1, 3, 20, 20);
// Access the newly created chart
Chart chart = worksheet.getCharts().get(idx);
// Set chart style
chart.setStyle(3);
// Set autoscaling value to true
chart.setAutoScaling(true);
// Set foreground color white
chart.getPlotArea().getArea().setForegroundColor(Color.getWhite());
// Set Properties of chart title
chart.getTitle().setText("Sample Chart");
// Set chart type
chart.setType(ChartType.LINE_WITH_DATA_MARKERS);
// Set Properties of categoryaxis title
chart.getCategoryAxis().getTitle().setText("Units");
//Set Properties of nseries
int s2_idx = chart.getNSeries().add("A2: A2", true);
int s3_idx = chart.getNSeries().add("A22: A22", true);
// Set IsColorVaried to true for varied points color
chart.getNSeries().setColorVaried(true);
// Set properties of background area and series markers
chart.getNSeries().get(s2_idx).getArea().setFormatting(FormattingType.CUSTOM);
chart.getNSeries().get(s2_idx).getMarker().getArea().setForegroundColor(Color.getYellow());
chart.getNSeries().get(s2_idx).getMarker().getBorder().setVisible(false);
// Set X and Y values of series chart
chart.getNSeries().get(s2_idx).setXValues("A2: A21");
chart.getNSeries().get(s2_idx).setValues("B2: B21");
// Set properties of background area and series markers
chart.getNSeries().get(s3_idx).getArea().setFormatting(FormattingType.CUSTOM);
chart.getNSeries().get(s3_idx).getMarker().getArea().setForegroundColor(Color.getGreen());
chart.getNSeries().get(s3_idx).getMarker().getBorder().setVisible(false);
// Set X and Y values of series chart
chart.getNSeries().get(s3_idx).setXValues("A22: A41");
chart.getNSeries().get(s3_idx).setValues("B22: B41");
// Save the workbook
workbook.save(outDir + "LineWithDataMarkerChart.xlsx", SaveFormat.XLSX);

Создание пользовательских диаграмм

До сих пор при обсуждении диаграмм мы рассматривали стандартные диаграммы со стандартными настройками форматирования. Мы только определяем источник данных, устанавливаем несколько свойств, и диаграмма создается с настройками формата по умолчанию. Но Aspose.Cells также поддерживает создание пользовательских диаграмм, что позволяет разработчикам создавать диаграммы с собственными настройками формата.

Создание пользовательских диаграмм

Разработчики могут создавать собственные диаграммы во время выполнения, используя Aspose.Cells простой API.

Диаграмма состоит из ряда данных. Каждый ряд данных в Aspose.Cells представленРяд объект, тогда какСерияКоллекция объект представляет собой совокупностьРядобъекты. При создании пользовательской диаграммы разработчики могут свободно использовать различные типы диаграмм для разных рядов данных (собранных вСерияКоллекцияобъект).

В приведенном ниже примере кода показано, как создавать собственные диаграммы. В этом примере мы собираемся использовать столбчатую диаграмму для первого ряда данных и линейную диаграмму для второго ряда. В результате мы добавляем столбчатую диаграмму в сочетании с линейной диаграммой на рабочий лист.

Пользовательская диаграмма, сочетающая столбчатые и линейные диаграммы

дело:изображение_альтернативный_текст

Пример программирования

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(HowToCreateCustomChart.class) + "charts/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Obtaining the reference of the first worksheet
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);
// Adding some sample value to cells
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(180);
cell = cells.get("C1");
cell.setValue(320);
cell = cells.get("C2");
cell.setValue(110);
cell = cells.get("C3");
cell.setValue(180);
cell = cells.get("D1");
cell.setValue(40);
cell = cells.get("D2");
cell.setValue(120);
cell = cells.get("D3");
cell.setValue(250);
ChartCollection charts = sheet.getCharts();
// Adding a chart to the worksheet
int chartIndex = charts.add(ChartType.COLUMN_3_D, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);
// Adding NSeries (chart data source) to the chart ranging from "A1"
// cell to "B3"
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);
// Saving the Excel file
workbook.save(dataDir + "HTCCustomChart_out.xls");
// Print message
System.out.println("Customized chart is successfully created.");