Создание и настройка диаграмм
Возможные сценарии использования
Диаграмма - это визуальное отображение информации. Aspose.Cells позволяет разработчикам визуализировать информацию в диаграммах так же, как это делает Microsoft Excel. Представление информации в диаграммах всегда полезно для лиц, принимающих быстрые и своевременные решения. Сравнивать, выявлять закономерности и тенденции в данных с помощью диаграмм гораздо проще, чем анализировать сырые числа. Создание диаграмм во время выполнения на основе данных в электронной таблице является одной из полезных функций Aspose.Cells. Aspose.Cells поддерживает создание как стандартных, так и настраиваемых диаграмм. Ниже мы покажем несколько примеров с образцами файлов о том, как создать некоторые общие типы диаграмм MS-Excel с помощью API Aspose.Cells.
Пирамидальная диаграмма
При выполнении приведенного в примере кода к рабочему документу Excel добавляется пирамидальная диаграмма. См. выходной файл Excel следующего образца кода.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
Aspose::Cells::Startup(); | |
// Output directory path | |
U16String outDir(u"..\\Data\\02_OutputDirectory\\"); | |
// Path of output excel file | |
U16String outputChartTypePyramid = outDir + u"outputChartTypePyramid.xlsx"; | |
// Create a new workbook | |
Workbook workbook; | |
// Get first worksheet which is created by default | |
Worksheet worksheet = workbook.GetWorksheets().Get(0); | |
// Adding sample values to cells | |
worksheet.GetCells().Get(u"A1").PutValue(50); | |
worksheet.GetCells().Get(u"A2").PutValue(100); | |
worksheet.GetCells().Get(u"A3").PutValue(150); | |
worksheet.GetCells().Get(u"B1").PutValue(4); | |
worksheet.GetCells().Get(u"B2").PutValue(20); | |
worksheet.GetCells().Get(u"B3").PutValue(50); | |
// Adding a chart to the worksheet | |
int chartIndex = worksheet.GetCharts().Add(Aspose::Cells::Charts::ChartType::Pyramid, 5, 0, 20, 8); | |
// Accessing the instance of the newly added chart | |
Chart chart = worksheet.GetCharts().Get(chartIndex); | |
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3" | |
chart.GetNSeries().Add(u"A1:B3", true); | |
// Saving the Excel file | |
workbook.Save(outputChartTypePyramid); | |
Aspose::Cells::Cleanup(); |
Линейная диаграмма
В приведенном выше примере простая замена ChartType на ChartType::Line
создает линейную диаграмму. Полный исходный код приведен ниже. При выполнении кода к рабочему документу Excel добавляется линейная диаграмма. См. выходной файл Excel следующего образца кода.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
Aspose::Cells::Startup(); | |
// Output directory path | |
U16String outDir(u"..\\Data\\02_OutputDirectory\\"); | |
// Path of output excel file | |
U16String outputChartTypeLine = testPath + u"outputChartTypeLine.xlsx"; | |
// Create a new workbook | |
Workbook workbook; | |
// Get first worksheet which is created by default | |
Worksheet worksheet = workbook.GetWorksheets().Get(0); | |
// Adding sample values to cells | |
worksheet.GetCells().Get(u"A1").PutValue(50); | |
worksheet.GetCells().Get(u"A2").PutValue(100); | |
worksheet.GetCells().Get(u"A3").PutValue(150); | |
worksheet.GetCells().Get(u"B1").PutValue(4); | |
worksheet.GetCells().Get(u"B2").PutValue(20); | |
worksheet.GetCells().Get(u"B3").PutValue(50); | |
// Adding a chart to the worksheet | |
int chartIndex = worksheet.GetCharts().Add(Aspose::Cells::Charts::ChartType::Line, 5, 0, 20, 8); | |
// Accessing the instance of the newly added chart | |
Chart chart = worksheet.GetCharts().Get(chartIndex); | |
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3" | |
chart.GetNSeries().Add(u"A1:B3", true); | |
// Saving the Excel file | |
workbook.Save(outputChartTypeLine); | |
Aspose::Cells::Cleanup(); |
Пузырьковая диаграмма
Для создания пузырьковой диаграммы ChartType должно быть установлено в ChartType_Bubble
и соответственно должны быть установлены дополнительные свойства, такие как SetBubbleSizes и SetXValues. После выполнения приведенного ниже кода к рабочему документу Excel добавляется пузырьковая диаграмма. См. выходной файл Excel следующего образца кода.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
Aspose::Cells::Startup(); | |
// Output directory path | |
U16String outDir(u"..\\Data\\02_OutputDirectory\\"); | |
// Path of output excel file | |
U16String outputChartTypeBubble = outDir + u"outputChartTypeBubble.xlsx"; | |
// Create a new workbook | |
Workbook workbook; | |
// Get first worksheet which is created by default | |
Worksheet worksheet = workbook.GetWorksheets().Get(0); | |
// Fill in data for chart's series | |
// Y Values | |
worksheet.GetCells().Get(0, 0).PutValue(u"Y Values"); | |
worksheet.GetCells().Get(0, 1).PutValue(2); | |
worksheet.GetCells().Get(0, 2).PutValue(4); | |
worksheet.GetCells().Get(0, 3).PutValue(6); | |
// Bubble Size | |
worksheet.GetCells().Get(1, 0).PutValue(u"Bubble Size"); | |
worksheet.GetCells().Get(1, 1).PutValue(2); | |
worksheet.GetCells().Get(1, 2).PutValue(3); | |
worksheet.GetCells().Get(1, 3).PutValue(1); | |
// X Values | |
worksheet.GetCells().Get(2, 0).PutValue(u"X Values"); | |
worksheet.GetCells().Get(2, 1).PutValue(1); | |
worksheet.GetCells().Get(2, 2).PutValue(2); | |
worksheet.GetCells().Get(2, 3).PutValue(3); | |
// Set first column width | |
worksheet.GetCells().SetColumnWidth(0, 12); | |
// Adding a chart to the worksheet | |
int chartIndex = worksheet.GetCharts().Add(Aspose::Cells::Charts::ChartType::Bubble, 5, 0, 20, 8); | |
// Accessing the instance of the newly added chart | |
Chart chart = worksheet.GetCharts().Get(chartIndex); | |
// Adding SeriesCollection (chart data source) to the chart ranging from B1 to D1 | |
chart.GetNSeries().Add(u"B1:D1", true); | |
// Set bubble sizes | |
chart.GetNSeries().Get(0).SetBubbleSizes(u"B2:D2"); | |
// Set X axis values | |
chart.GetNSeries().Get(0).SetXValues(u"B3:D3"); | |
// Set Y axis values | |
chart.GetNSeries().Get(0).SetValues(u"B1:D1"); | |
// Saving the Excel file | |
workbook.Save(outputChartTypeBubble); | |
Aspose::Cells::Cleanup(); |
Создание настраиваемых диаграмм
До сих пор, когда мы говорили о диаграммах, мы рассматривали стандартные диаграммы, у которых есть свои стандартные настройки форматирования. Мы только определяем источник данных, устанавливаем несколько свойств, и диаграмма создается с ее настройками форматирования по умолчанию. Но API Aspose.Cells также поддерживает создание настраиваемых диаграмм, позволяющих разработчикам создавать диаграммы с собственными настройками форматирования. Разработчики могут создавать настраиваемые диаграммы во время выполнения с использованием Aspose.Cells.
Диаграмма состоит из набора данных. При создании пользовательской диаграммы разработчики имеют свободу использовать различные типы диаграмм для разных наборов данных.
Приведенный ниже пример кода демонстрирует, как создавать пользовательские диаграммы. В этом примере мы собираемся использовать столбчатую диаграмму для первого набора данных и линейную диаграмму для второго набора. Результатом будет добавление столбчатой диаграммы, совмещенной с линейной диаграммой, на лист электронной таблицы. Пожалуйста, посмотрите выходной файл Excel следующего образца кода.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
Aspose::Cells::Startup(); | |
// Output directory path | |
U16String outDir(u"..\\Data\\02_OutputDirectory\\"); | |
// Path of output excel file | |
U16String outputChartTypeCustom = outDir + u"outputChartTypeCustom.xlsx"; | |
// Create a new workbook | |
Workbook workbook; | |
// Get first worksheet which is created by default | |
Worksheet worksheet = workbook.GetWorksheets().Get(0); | |
// Adding sample values to cells | |
worksheet.GetCells().Get(u"A1").PutValue(50); | |
worksheet.GetCells().Get(u"A2").PutValue(100); | |
worksheet.GetCells().Get(u"A3").PutValue(150); | |
worksheet.GetCells().Get(u"A4").PutValue(110); | |
worksheet.GetCells().Get(u"B1").PutValue(260); | |
worksheet.GetCells().Get(u"B2").PutValue(12); | |
worksheet.GetCells().Get(u"B3").PutValue(50); | |
worksheet.GetCells().Get(u"B4").PutValue(100); | |
// Adding a chart to the worksheet | |
int chartIndex = worksheet.GetCharts().Add(Aspose::Cells::Charts::ChartType::Column, 5, 0, 20, 8); | |
// Accessing the instance of the newly added chart | |
Chart chart = worksheet.GetCharts().Get(chartIndex); | |
// Adding SeriesCollection (chart data source) to the chart ranging from A1 to B4 | |
chart.GetNSeries().Add(u"A1:B4", true); | |
// Setting the chart type of 2nd NSeries to display as line chart | |
chart.GetNSeries().Get(1).SetType(Aspose::Cells::Charts::ChartType::Line); | |
// Saving the Excel file | |
workbook.Save(outputChartTypeCustom); | |
Aspose::Cells::Cleanup(); |