Manipulate Position Size and Designer Chart
Chart Position and Size
Sometimes, you want to change the position or size of the new or existing chart inside the worksheet. Aspose.Cells for Python via .NET provides the Chart.chart_object property to achieve this. You can use its sub-properties to re-size the chart with new height and width or re-position it with new X and Y coordinates.
Controlling Chart Position and Size
To change the chart’s position (X, Y coordinates) or size (height, width), use these properties:
The following example explains the usage of the above APIs, it loads the existing workbook which contains a chart in its first worksheet. Then it re-sizes and re-positions the chart using Aspose.Cells for Python via .NET.
from aspose.cells import Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
workbook = Workbook(dataDir + "chart.xls") | |
worksheet = workbook.worksheets[1] | |
# Load the chart from source worksheet | |
chart = worksheet.charts[0] | |
# Resize the chart | |
chart.chart_object.width = 400 | |
chart.chart_object.height = 300 | |
# Reposition the chart | |
chart.chart_object.x = 250 | |
chart.chart_object.y = 150 | |
# Output the file | |
workbook.save(dataDir + "chart.out.xls") |
Manipulating Designer Charts
There are times when you need to manipulate or modify charts in designer template files. Aspose.Cells for Python via .NET fully supports manipulating designer chart contents and elements. The data, chart contents, background image, and formattings can be preserved with accuracy.
Manipulating Designer Charts in Template Files
To manipulate designer charts in template files, use the chart related API. For example, you may use the Worksheet.Charts property to get the existing charts collection in the template file.
Creating a Chart
The following example shows how to create a pyramid chart. We will manipulate this chart later on.
from aspose.cells import Workbook | |
from aspose.cells.charts import ChartType | |
from os import os, path | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Create directory if it is not already present. | |
IsExists = path.isdir(dataDir) | |
if notIsExists: | |
os.makedirs(dataDir) | |
# Instantiating a Workbook object | |
workbook = Workbook() | |
# Adding a new worksheet to the Excel object | |
sheetIndex = workbook.worksheets.add() | |
# Obtaining the reference of the newly added worksheet by passing its sheet index | |
worksheet = workbook.worksheets[sheetIndex] | |
# Adding sample values to cells | |
worksheet.cells.get("A1").put_value(50) | |
worksheet.cells.get("A2").put_value(100) | |
worksheet.cells.get("A3").put_value(150) | |
worksheet.cells.get("B1").put_value(4) | |
worksheet.cells.get("B2").put_value(20) | |
worksheet.cells.get("B3").put_value(50) | |
# Adding a chart to the worksheet | |
chartIndex = worksheet.charts.add(ChartType.PYRAMID, 5, 0, 15, 5) | |
# Accessing the instance of the newly added chart | |
chart = worksheet.charts[chartIndex] | |
# Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3" | |
chart.n_series.add("A1:B3", True) | |
# Saving the Excel file | |
workbook.save(dataDir + "book1.out.xls") |
Manipulating the Chart
The following example shows how to manipulate the existing chart. In this example, we modify the chart created above. In the generated output, note that the date label of one data point has been set to ‘United Kingdom, 30K’.
from aspose.cells import Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Open the existing file. | |
workbook = Workbook(dataDir + "piechart.xls") | |
# Get the designer chart in the second sheet. | |
sheet = workbook.worksheets[1] | |
chart = sheet.charts[0] | |
# Get the data labels in the data series of the third data point. | |
datalabels = chart.n_series[0].points[2].data_labels | |
# Change the text of the label. | |
datalabels.text = "Unided Kingdom, 400K " | |
# Save the excel file. | |
workbook.save(dataDir + "output.xls") |
Manipulating a Line Chart in the Designer Template
In this example, we will manipulate a line chart. We will add some data series to the existing chart and change their line colors.
from aspose.cells import Workbook | |
from aspose.pydrawing import Color | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Open the existing file. | |
workbook = Workbook(dataDir + "Book1.xlsx") | |
# Get the designer chart in the first worksheet. | |
chart = workbook.worksheets[0].charts[0] | |
# Add the third data series to it. | |
chart.n_series.add("{60, 80, 10}", True) | |
# Add another data series (fourth) to it. | |
chart.n_series.add("{0.3, 0.7, 1.2}", True) | |
# Plot the fourth data series on the second axis. | |
chart.n_series[3].plot_on_second_axis = True | |
# Change the Border color of the second data series. | |
chart.n_series[1].border.color = Color.green | |
# Change the Border color of the third data series. | |
chart.n_series[2].border.color = Color.red | |
# Make the second value axis visible. | |
chart.second_value_axis.is_visible = True | |
# Save the excel file. | |
workbook.save(dataDir + "output.xls") |