Shapes in Charts
Adding Label Control to the Chart
Labels provide a means for giving information to users about a spreadsheet’s content. Aspose.Cells for Python via .NET allows you to add and manipulate labels even into charts.
The aspose.cells.drawing.ShapeCollection class provides a method named add_label_in_chart, used to add a label control to a chart. Below is a list of the parameters used for the method:
- top – the vertical offset of the label from the upper left corner in units of 1/4000 of the chart area.
- left – the vertical offset of the label from the upper left corner in units of 1/4000 of the chart area.
- height – the height of the label, in units of 1/4000 of the chart area.
- width – the width of label, in units of 1/4000 of the chart area.
The method returns aspose.cells.drawing.Label object. The Label class represents a label in the chart. It has some important members:
- text (property) – specifies a label’s caption string.
- fill (property) – specifies the fill color attributes.
The following example shows how to add a label to the chart. The example uses a designer file (exp_piechart.xls) which has a chart in it. We use this file to insert a label into the chart. Below is the original code for adding a label to the chart. The following output is generated when executing the code.
from aspose.cells import Workbook | |
from aspose.cells.drawing import PlacementType | |
# 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 + "chart.xls") | |
# Get the designer chart in the second sheet. | |
sheet = workbook.worksheets[1] | |
chart = sheet.charts[0] | |
# Add a new label to the chart. | |
label = chart.shapes.add_label_in_chart(100, 100, 350, 900) | |
# Set the caption of the label. | |
label.text = "A Label In Chart" | |
# Set the Placement Type, the way the | |
# Label is attached to the cells. | |
label.placement = PlacementType.FREE_FLOATING | |
# Save the excel file. | |
workbook.save(dataDir + "chart.out.xls") |
Adding TextBox Control to the Chart
One way to highlight important information in a report is to use a text box. For example, enter text to highlight the company name or to indicate the geographic region with the highest sales. The aspose.cells.drawing.ShapeCollection class provides a method named add_text_box_in_chart, which is used to add a text box control to a chart. Following is the parameters list used for the method:
- top – the vertical offset of the text box from the upper left corner in units of 1/4000 of the chart area.
- left – the vertical offset of text box from the upper left corner in units of 1/4000 of the chart area.
- height – the height of text box, in units of 1/4000 of the chart area.
- width – the width of the text box, in units of 1/4000 of the chart area.
The method returns aspose.cells.drawing.TextBox object. The TextBox class represents a text box in the chart.
The following example shows how to add a text box to a chart. The example uses the previous designer file (exp_piechart.xls) which has a chart in it. We use this file to insert a text box into the chart to show the chart title. Below is the original code for adding text box to the chart.
from aspose.cells import Workbook | |
from aspose.cells.drawing import MsoLineDashStyle | |
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 + "chart.xls") | |
# Get the designer chart in the second sheet. | |
sheet = workbook.worksheets[1] | |
chart = sheet.charts[0] | |
# Add a new textbox to the chart. | |
textbox0 = chart.shapes.add_text_box_in_chart(100, 1100, 350, 2550) | |
# Fill the text. | |
textbox0.text = "Sales By Region" | |
# Get the textbox text frame. | |
# Aspose.Cells.Drawing.MsoTextFrame textframe0 = textbox0.TextFrame; | |
# Set the textbox to adjust it according to its contents. | |
# textframe0.AutoSize = true; | |
# Set the font color. | |
textbox0.font.color = Color.maroon | |
# Set the font to bold. | |
textbox0.font.is_bold = True | |
# Set the font size. | |
textbox0.font.size = 14 | |
# Set font attribute to italic. | |
textbox0.font.is_italic = True | |
# Get the filformat of the textbox. | |
fillformat = textbox0.fill | |
# Get the lineformat type of the textbox. | |
lineformat = textbox0.line | |
# Set the line weight. | |
lineformat.weight = 2.0 | |
# Set the dash style to solid. | |
lineformat.dash_style = MsoLineDashStyle.SOLID | |
# Save the excel file. | |
workbook.save(dataDir + "chart.out.xls") |
Adding Picture to the Chart
Aspose.Cells for Python via .NET allows you to insert images into a chart. For example, add a picture to emphasize or give more meaning to a chart or its contents, or insert a brand image file.
The aspose.cells.drawing.ShapeCollection class provides a method named add_picture_in_chart, which is used to add a picture object to the chart. Following is the parameters list used for the method:
- top – the vertical offset of the picture from the upper left corner in units of 1/4000 of the chart area.
- left – the vertical offset of the picture from the upper left corner in units of 1/4000 of the chart area.
- stream – a stream object which contains the image data.
- widthScale – the scale of image width, a percentage value.
- heightScale – the scale of image height, a percentage value.
The method returns an aspose.cells.drawing.Picture object. The Picture class represents a picture object in the chart.
The following example shows how to add a picture to the chart. The example utilizes the previous designer file (exp_piechart.xls) which has a chart in it. We use this file to insert an image into the chart. Below is the original code for adding picture to the chart.
from aspose.cells import Workbook | |
from aspose.cells.drawing import MsoLineDashStyle | |
# 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 + "chart.xls") | |
# Get an image file to the stream. | |
stream = open(dataDir + "logo.jpg", "rb") | |
# Get the designer chart in the second sheet. | |
sheet = workbook.worksheets[0] | |
chart = sheet.charts[0] | |
# Add a new picture to the chart. | |
pic0 = chart.shapes.add_picture_in_chart(50, 50, stream, 40, 40) | |
# Get the lineformat type of the picture. | |
lineformat = pic0.line | |
# Set the dash style. | |
lineformat.dash_style = MsoLineDashStyle.SOLID | |
# Set the line weight. | |
lineformat.weight = 4.0 | |
# Save the excel file. | |
workbook.save(dataDir + "chart.out.xls") |
Adding Checkbox in the Chart
Aspose.Cells for Python via .NET allows you to insert checkboxes into a chart sheet by using MsoDrawingType enumeration. The following example demonstrates adding a checkbox to a chart sheet.
The following image shows the chart sheet with the checkbox in the output file.
The output file generated by the following code snippet is attached for your reference.
from aspose.cells import SheetType, Workbook | |
from aspose.cells.charts import ChartType | |
from aspose.cells.drawing import MsoDrawingType, PlacementType | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# Instantiating a Workbook object | |
workbook = Workbook() | |
# Adding a chart to the worksheet | |
index = workbook.worksheets.add(SheetType.CHART) | |
sheet = workbook.worksheets[index] | |
sheet.charts.add_floating_chart(ChartType.COLUMN, 0, 0, 1024, 960) | |
sheet.charts[0].n_series.add("{1,2,3}", False) | |
# Add checkbox to the chart. | |
sheet.charts[0].shapes.add_shape_in_chart(MsoDrawingType.CHECK_BOX, PlacementType.MOVE, 400, 400, 1000, 600) | |
sheet.charts[0].shapes[0].text = "CheckBox 1" | |
# Save the excel file. | |
workbook.save(outputDir + "InsertCheckboxInChartSheet_out.xlsx") |