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 allows you to add and manipulate labels even into charts.
The Aspose.Cells.Drawing.ShapeCollection class provides a method named AddLabelInChart, 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.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Open the existing file. | |
Workbook workbook = new Workbook(dataDir + "chart.xls"); | |
// Get the designer chart in the second sheet. | |
Worksheet sheet = workbook.Worksheets[1]; | |
Aspose.Cells.Charts.Chart chart = sheet.Charts[0]; | |
// Add a new label to the chart. | |
Aspose.Cells.Drawing.Label label = chart.Shapes.AddLabelInChart(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 = Aspose.Cells.Drawing.PlacementType.FreeFloating; | |
// 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 AddTextBoxInChart, 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.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Open the existing file. | |
Workbook workbook = new Workbook(dataDir + "chart.xls"); | |
// Get the designer chart in the second sheet. | |
Worksheet sheet = workbook.Worksheets[1]; | |
Aspose.Cells.Charts.Chart chart = sheet.Charts[0]; | |
// Add a new textbox to the chart. | |
Aspose.Cells.Drawing.TextBox textbox0 = chart.Shapes.AddTextBoxInChart(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.IsBold = true; | |
// Set the font size. | |
textbox0.Font.Size = 14; | |
// Set font attribute to italic. | |
textbox0.Font.IsItalic = true; | |
// Get the filformat of the textbox. | |
Aspose.Cells.Drawing.FillFormat fillformat = textbox0.Fill; | |
// Get the lineformat type of the textbox. | |
Aspose.Cells.Drawing.LineFormat lineformat = textbox0.Line; | |
// Set the line weight. | |
lineformat.Weight = 2; | |
// Set the dash style to solid. | |
lineformat.DashStyle = Aspose.Cells.Drawing.MsoLineDashStyle.Solid; | |
// Save the excel file. | |
workbook.Save(dataDir + "chart.out.xls"); |
Adding Picture to the Chart
Aspose.Cells 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 AddPictureInChart, 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.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Open the existing file. | |
Workbook workbook = new Workbook(dataDir + "chart.xls"); | |
// Get an image file to the stream. | |
FileStream stream = new FileStream(dataDir + "logo.jpg", FileMode.Open, FileAccess.Read); | |
// Get the designer chart in the second sheet. | |
Worksheet sheet = workbook.Worksheets[0]; | |
Aspose.Cells.Charts.Chart chart = sheet.Charts[0]; | |
// Add a new picture to the chart. | |
Aspose.Cells.Drawing.Picture pic0 = chart.Shapes.AddPictureInChart(50, 50, stream, 40, 40); | |
// Get the lineformat type of the picture. | |
Aspose.Cells.Drawing.LineFormat lineformat = pic0.Line; | |
// Set the dash style. | |
lineformat.DashStyle = Aspose.Cells.Drawing.MsoLineDashStyle.Solid; | |
// Set the line weight. | |
lineformat.Weight = 4; | |
// Save the excel file. | |
workbook.Save(dataDir + "chart.out.xls"); |
Adding Checkbox in the Chart
Aspose.Cells 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.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Adding a chart to the worksheet | |
int index = workbook.Worksheets.Add(SheetType.Chart); | |
Worksheet sheet = workbook.Worksheets[index]; | |
sheet.Charts.AddFloatingChart(ChartType.Column, 0, 0, 1024, 960); | |
sheet.Charts[0].NSeries.Add("{1,2,3}", false); | |
// Add checkbox to the chart. | |
sheet.Charts[0].Shapes.AddShapeInChart(MsoDrawingType.CheckBox, PlacementType.Move, 400, 400, 1000, 600); | |
sheet.Charts[0].Shapes[0].Text = "CheckBox 1"; | |
// Save the excel file. | |
workbook.Save(outputDir + "InsertCheckboxInChartSheet_out.xlsx"); |