XLSX: Work with charts on XLSX page
In This Topic
SpreadsheetEditorControl and
WpfSpreadsheetEditorControl controls allow to work (view, add, edit and delete) with charts of XLSX worksheet in desktop (WinForms, WPF) application.
Charts can be changed visually using mouse/keyboard or programmatically.
List of supported standard chart types
Here is the list of standard chart types, which are supported by the SDK:
-
Column charts:
- Clustered Column
- Stacked Column
- 100% Stacked Column
- 3D Clustered Column
- 3D Stacked Column
- 3D 100% Stacked Column
- 3D Column
-
Line charts:
- Line
- Stacked Line
- 100% Stacked Line
- Line with Markers
- Stacked Line with Markers
- 100% Stacked Line with Markers
- 3D Line
-
Pie charts:
-
Bar charts:
- Clustered Bar
- Stacked Bar
- 100% Stacked Bar
- 3D Clustered Bar
- 3D Stacked Bar
- 3D 100% Stacked Bar
-
Area charts:
- Area
- Stacked Area
- 100% Stacked Area
- 3D Area
- 3D Stacked Area
- 3D 100% Stacked Area
-
X Y (Scatter):
- Scatter
- Scatter with Smooth Lines and Markers
- Scatter with Smooth Lines
- Scatter with Straight Lines and Markers
- Scatter with Straight Lines
- Bubble
- 3D Bubble
-
Stock:
- High-Low-Close
- Open-High-Low-Close
- Volume-High-Low-Close
- Volume-Open-High-Low-Close
-
Surface:
- 3D Surface
- Wireframe Surface
-
Radar:
- Radar
- Radar with Markers
- Filled Radar
-
Combo:
Add new chart to the XLSX worksheet
If you want to add new chart, you need to provide an existing chart as a template for new chart.
Here is C#/VB.NET code that demonstrates how to add a column chart to the focused XLSX worksheet:
/// <summary>
/// Adds the chart to a worksheet.
/// </summary>
/// <param name="editorControl">The spreadsheet editor control.</param>
/// <param name="templateFilePath">A name of file that contains templates of charts.</param>
/// <param name="worksheetIndex">A zero-based index of the worksheet that contains the chart.</param>
/// <param name="chartIndex">A zero-based index of the chart that should be added.</param>
public void AddChartToXlsxWorksheet(
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl editorControl,
string chartTemplateFileName,
int worksheetIndex,
int chartIndex)
{
// get visual editor for spreadsheet document
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor spreadsheetVisualEditor = editorControl.VisualEditor;
// open XLSX file that contains template chart
using (Vintasoft.Imaging.Office.Spreadsheet.SpreadsheetEditorSource templateSource =
new Vintasoft.Imaging.Office.Spreadsheet.SpreadsheetEditorSource(chartTemplateFileName))
{
// create the editor for template XLSX file
using (Vintasoft.Imaging.Office.Spreadsheet.SpreadsheetEditor templateSourceEditor =
new Vintasoft.Imaging.Office.Spreadsheet.SpreadsheetEditor(templateSource, false))
{
// initialize the editor
templateSourceEditor.Initialize(new Vintasoft.Imaging.Office.Spreadsheet.SpreadsheetEditorSettings());
// get worksheet by worksheet index
Vintasoft.Imaging.Office.Spreadsheet.Document.Worksheet worksheet = templateSourceEditor.Document.Worksheets[worksheetIndex];
// get the template chart by chart index
Vintasoft.Imaging.Office.Spreadsheet.Document.SheetDrawing templateChart = worksheet.Drawings[chartIndex];
// add new chart that is based on template chart
spreadsheetVisualEditor.AddChart(worksheet, templateChart);
}
}
}
''' <summary>
''' Adds the chart to a worksheet.
''' </summary>
''' <param name="editorControl">The spreadsheet editor control.</param>
''' <param name="templateFilePath">A name of file that contains templates of charts.</param>
''' <param name="worksheetIndex">A zero-based index of the worksheet that contains the chart.</param>
''' <param name="chartIndex">A zero-based index of the chart that should be added.</param>
Public Sub AddChartToXlsxWorksheet(editorControl As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl, chartTemplateFileName As String, worksheetIndex As Integer, chartIndex As Integer)
' get visual editor for spreadsheet document
Dim spreadsheetVisualEditor As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor = editorControl.VisualEditor
' open XLSX file that contains template chart
Using templateSource As New Vintasoft.Imaging.Office.Spreadsheet.SpreadsheetEditorSource(chartTemplateFileName)
' create the editor for template XLSX file
Using templateSourceEditor As New Vintasoft.Imaging.Office.Spreadsheet.SpreadsheetEditor(templateSource, False)
' initialize the editor
templateSourceEditor.Initialize(New Vintasoft.Imaging.Office.Spreadsheet.SpreadsheetEditorSettings())
' get worksheet by worksheet index
Dim worksheet As Vintasoft.Imaging.Office.Spreadsheet.Document.Worksheet = templateSourceEditor.Document.Worksheets(worksheetIndex)
' get the template chart by chart index
Dim templateChart As Vintasoft.Imaging.Office.Spreadsheet.Document.SheetDrawing = worksheet.Drawings(chartIndex)
' add new chart that is based on template chart
spreadsheetVisualEditor.AddChart(worksheet, templateChart)
End Using
End Using
End Sub
Chart data: Set the series data of the chart
If you want to set the series data of the chart using mouse, you should do the following steps:
- Click on the chart, which should be modified, and editor will select cells, which represent chart data. Selected cells will be highlighted using blue selection region.
- Resize or move the blue selection region if you want to change cells, which represent chart data.
Chart data: Set the category data of the chart
If you want to set the category data of the chart using mouse, you should do the following steps:
- Click on the chart, which should be modified, and editor will select cells, which represent category data, using red selection region.
- Resize or move the red selection region if you want to change cells, which represent category data.
Chart appearance: Set the axis labels for the chart
If you want to set the axis labels for the chart using mouse, you should do the following steps:
- Click on the chart, which should be modified, and editor will select cells, which represent axis labels. Selected cells will be highlighted using purple selection region.
- Resize or move the purple selection region if you want to change cells, which represent the axis labels.
Chart data: Set the chart data (series, categories, axis labels) of the chart
Here is C#/VB.NET code that demonstrates how to change the chart data of a chart on XLSX worksheet:
/// <summary>
/// Changes the chart data (categories name, series name and series values) for chart in SalesReport.xlsx file.
/// </summary>
/// <param name="editorControl">The spreadsheet editor control.</param>
public void SetDataOfXlsxChart(Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl editorControl)
{
// get visual editor for spreadsheet document
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor spreadsheetVisualEditor = editorControl.VisualEditor;
// create worksheet editor
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.WorksheetEditor worksheetEditor =
spreadsheetVisualEditor.Editor.StartEditing(spreadsheetVisualEditor.FocusedWorksheet);
try
{
// create editor for focused chart
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.SheetDrawingEditor chartEditor =
worksheetEditor.CreateDrawingEditor(spreadsheetVisualEditor.FocusedDrawing);
// create editor for chart properties
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartPropertiesEditor chartPropertiesEditor =
chartEditor.CreateChartPropertiesEditor();
// create the cell references, which reference cells region "D6:F6" as cells for data of chart categories
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences categoriesReferences =
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.CreateFixedReferences(
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.Parse("D6:F6"),
spreadsheetVisualEditor.FocusedWorksheet.Name,
true, true);
// create the cell references, which reference cells region "C7:C10" as cells for data of chart series
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences seriesReferences =
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.CreateFixedReferences(
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.Parse("C7:C10"),
spreadsheetVisualEditor.FocusedWorksheet.Name,
true, true);
// create the cell references, which reference cells region "D7:F10" as cells for data of chart series data
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences seriesDataReferences =
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.CreateFixedReferences(
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.Parse("D7:F10"),
spreadsheetVisualEditor.FocusedWorksheet.Name,
true, true);
// union all references
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences references =
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.Union(categoriesReferences,
Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.Union(seriesReferences, seriesDataReferences));
// set data references for chart
chartPropertiesEditor.SetDataReferences(references);
}
finally
{
spreadsheetVisualEditor.Editor.FinishEditing();
}
}
''' <summary>
''' Changes the chart data (categories name, series name and series values) for chart in SalesReport.xlsx file.
''' </summary>
''' <param name="editorControl">The spreadsheet editor control.</param>
Public Sub SetDataOfXlsxChart(editorControl As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl)
' get visual editor for spreadsheet document
Dim spreadsheetVisualEditor As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor = editorControl.VisualEditor
' create worksheet editor
Dim worksheetEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.WorksheetEditor = spreadsheetVisualEditor.Editor.StartEditing(spreadsheetVisualEditor.FocusedWorksheet)
Try
' create editor for focused chart
Dim chartEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.SheetDrawingEditor = worksheetEditor.CreateDrawingEditor(spreadsheetVisualEditor.FocusedDrawing)
' create editor for chart properties
Dim chartPropertiesEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartPropertiesEditor = chartEditor.CreateChartPropertiesEditor()
' create the cell references, which reference cells region "D6:F6" as cells for data of chart categories
Dim categoriesReferences As Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences = Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.CreateFixedReferences(Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.Parse("D6:F6"), spreadsheetVisualEditor.FocusedWorksheet.Name, True, True)
' create the cell references, which reference cells region "C7:C10" as cells for data of chart series
Dim seriesReferences As Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences = Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.CreateFixedReferences(Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.Parse("C7:C10"), spreadsheetVisualEditor.FocusedWorksheet.Name, True, True)
' create the cell references, which reference cells region "D7:F10" as cells for data of chart series data
Dim seriesDataReferences As Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences = Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.CreateFixedReferences(Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.Parse("D7:F10"), spreadsheetVisualEditor.FocusedWorksheet.Name, True, True)
' union all references
Dim references As Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences = Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.Union(categoriesReferences, Vintasoft.Imaging.Office.Spreadsheet.Document.CellReferences.Union(seriesReferences, seriesDataReferences))
' set data references for chart
chartPropertiesEditor.SetDataReferences(references)
Finally
spreadsheetVisualEditor.Editor.FinishEditing()
End Try
End Sub
Chart appearance: Set the title of the chart
Here is C#/VB.NET code that demonstrates how to set the text and font of a chart title:
/// <summary>
/// Sets the chart title and font properties.
/// </summary>
/// <param name="editorControl">The spreadsheet editor control.</param>
/// <param name="fontProperties">The title font properties.</param>
/// <param name="title">The title text.</param>
public void SetTitleOfXlsxChart(
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl editorControl,
Vintasoft.Imaging.Office.Spreadsheet.Document.FontProperties fontProperties,
string title)
{
// get visual editor for spreadsheet document
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor spreadsheetVisualEditor = editorControl.VisualEditor;
// create worksheet editor
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.WorksheetEditor worksheetEditor =
spreadsheetVisualEditor.Editor.StartEditing(spreadsheetVisualEditor.FocusedWorksheet);
try
{
// create editor for focused chart
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.SheetDrawingEditor chartEditor =
worksheetEditor.CreateDrawingEditor(spreadsheetVisualEditor.FocusedDrawing);
// create editor for chart properties
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartPropertiesEditor chartPropertiesEditor =
chartEditor.CreateChartPropertiesEditor();
// set title of the chart
chartPropertiesEditor.SetTitle(title);
// create the text appearance
Vintasoft.Imaging.Office.Spreadsheet.Document.TextAppearance textAppearance = new Vintasoft.Imaging.Office.Spreadsheet.Document.TextAppearance(
fontProperties,
new Vintasoft.Imaging.Office.Spreadsheet.Document.TextProperties());
// create the text and shape appearance
Vintasoft.Imaging.Office.Spreadsheet.Document.TextShapeAppearance appearance = new Vintasoft.Imaging.Office.Spreadsheet.Document.TextShapeAppearance(
textAppearance,
chartPropertiesEditor.ChartProperties.TitleAppearance.ShapeAppearance);
chartPropertiesEditor.SetTitleAppearance(appearance);
}
finally
{
spreadsheetVisualEditor.Editor.FinishEditing();
}
}
''' <summary>
''' Sets the chart title and font properties.
''' </summary>
''' <param name="editorControl">The spreadsheet editor control.</param>
''' <param name="fontProperties">The title font properties.</param>
''' <param name="title">The title text.</param>
Public Sub SetTitleOfXlsxChart(editorControl As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl, fontProperties As Vintasoft.Imaging.Office.Spreadsheet.Document.FontProperties, title As String)
' get visual editor for spreadsheet document
Dim spreadsheetVisualEditor As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor = editorControl.VisualEditor
' create worksheet editor
Dim worksheetEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.WorksheetEditor = spreadsheetVisualEditor.Editor.StartEditing(spreadsheetVisualEditor.FocusedWorksheet)
Try
' create editor for focused chart
Dim chartEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.SheetDrawingEditor = worksheetEditor.CreateDrawingEditor(spreadsheetVisualEditor.FocusedDrawing)
' create editor for chart properties
Dim chartPropertiesEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartPropertiesEditor = chartEditor.CreateChartPropertiesEditor()
' set title of the chart
chartPropertiesEditor.SetTitle(title)
' create the text appearance
Dim textAppearance As New Vintasoft.Imaging.Office.Spreadsheet.Document.TextAppearance(fontProperties, New Vintasoft.Imaging.Office.Spreadsheet.Document.TextProperties())
' create the text and shape appearance
Dim appearance As New Vintasoft.Imaging.Office.Spreadsheet.Document.TextShapeAppearance(textAppearance, chartPropertiesEditor.ChartProperties.TitleAppearance.ShapeAppearance)
chartPropertiesEditor.SetTitleAppearance(appearance)
Finally
spreadsheetVisualEditor.Editor.FinishEditing()
End Try
End Sub
Chart appearance: Set the color of plot area and chart area of the chart
Here is C#/VB.NET code that demonstrates how to set the color of plot area and chart area of the chart:
/// <summary>
/// Sets the chart background color and the plot area background color.
/// </summary>
/// <param name="editorControl">The spreadsheet editor control.</param>
/// <param name="chartBackgroundColor">The chart background color.</param>
/// <param name="plotAreaBackgroundColor">The plot area background color.</param>
public void SetColorForPlotAndChartAreaOfXlsxChart(
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl editorControl,
Vintasoft.Primitives.VintasoftColor chartBackgroundColor,
Vintasoft.Primitives.VintasoftColor plotAreaBackgroundColor)
{
// get visual editor for spreadsheet document
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor spreadsheetVisualEditor = editorControl.VisualEditor;
// create worksheet editor
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.WorksheetEditor worksheetEditor =
spreadsheetVisualEditor.Editor.StartEditing(spreadsheetVisualEditor.FocusedWorksheet);
try
{
// create editor for focused chart
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.SheetDrawingEditor chartEditor =
worksheetEditor.CreateDrawingEditor(spreadsheetVisualEditor.FocusedDrawing);
// create editor for chart properties
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartPropertiesEditor chartPropertiesEditor =
chartEditor.CreateChartPropertiesEditor();
// set the chart appearance
chartPropertiesEditor.SetChartAreaAppearance(new Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance(
chartBackgroundColor,
chartPropertiesEditor.ChartProperties.ChartAreaAppearance.OutlineColor,
chartPropertiesEditor.ChartProperties.ChartAreaAppearance.OutlineWidth));
// set the plot area appearance
chartPropertiesEditor.SetPlotAreaAppearance(new Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance(
plotAreaBackgroundColor,
chartPropertiesEditor.ChartProperties.PlotAreaAppearance.OutlineColor,
chartPropertiesEditor.ChartProperties.PlotAreaAppearance.OutlineWidth));
}
finally
{
spreadsheetVisualEditor.Editor.FinishEditing();
}
}
''' <summary>
''' Sets the chart background color and the plot area background color.
''' </summary>
''' <param name="editorControl">The spreadsheet editor control.</param>
''' <param name="chartBackgroundColor">The chart background color.</param>
''' <param name="plotAreaBackgroundColor">The plot area background color.</param>
Public Sub SetColorForPlotAndChartAreaOfXlsxChart(editorControl As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl, chartBackgroundColor As Vintasoft.Primitives.VintasoftColor, plotAreaBackgroundColor As Vintasoft.Primitives.VintasoftColor)
' get visual editor for spreadsheet document
Dim spreadsheetVisualEditor As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor = editorControl.VisualEditor
' create worksheet editor
Dim worksheetEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.WorksheetEditor = spreadsheetVisualEditor.Editor.StartEditing(spreadsheetVisualEditor.FocusedWorksheet)
Try
' create editor for focused chart
Dim chartEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.SheetDrawingEditor = worksheetEditor.CreateDrawingEditor(spreadsheetVisualEditor.FocusedDrawing)
' create editor for chart properties
Dim chartPropertiesEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartPropertiesEditor = chartEditor.CreateChartPropertiesEditor()
' set the chart appearance
chartPropertiesEditor.SetChartAreaAppearance(New Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance(chartBackgroundColor, chartPropertiesEditor.ChartProperties.ChartAreaAppearance.OutlineColor, chartPropertiesEditor.ChartProperties.ChartAreaAppearance.OutlineWidth))
' set the plot area appearance
chartPropertiesEditor.SetPlotAreaAppearance(New Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance(plotAreaBackgroundColor, chartPropertiesEditor.ChartProperties.PlotAreaAppearance.OutlineColor, chartPropertiesEditor.ChartProperties.PlotAreaAppearance.OutlineWidth))
Finally
spreadsheetVisualEditor.Editor.FinishEditing()
End Try
End Sub
Chart appearance: Set the colors for the chart series of chart
Here is C#/VB.NET code that demonstrates how to set colors for the chart series of chart:
/// <summary>
/// Sets the colors for the specified chart series.
/// </summary>
/// <param name="editorControl">The spreadsheet editor control.</param>
/// <param name="seriesIndex">Index of the series.</param>
public void SetColorsForChartSeriesOfXlsxChart(
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl editorControl,
int seriesIndex)
{
// get visual editor for spreadsheet document
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor spreadsheetVisualEditor = editorControl.VisualEditor;
// create worksheet editor
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.WorksheetEditor worksheetEditor =
spreadsheetVisualEditor.Editor.StartEditing(spreadsheetVisualEditor.FocusedWorksheet);
try
{
// create editor for focused chart
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.SheetDrawingEditor chartEditor =
worksheetEditor.CreateDrawingEditor(spreadsheetVisualEditor.FocusedDrawing);
// create editor for chart properties
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartPropertiesEditor chartPropertiesEditor =
chartEditor.CreateChartPropertiesEditor();
// create editor for chart series
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartDataSeriesEditor seriesEditor =
chartPropertiesEditor.CreateChartDataSeriesEditor(chartPropertiesEditor.ChartProperties.Series[seriesIndex]);
Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance appearance = new Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance(
Vintasoft.Primitives.VintasoftColor.Black,
Vintasoft.Primitives.VintasoftColor.Red, 3);
// set appearance for chart series
seriesEditor.SetAppearanceProperties(appearance);
}
finally
{
spreadsheetVisualEditor.Editor.FinishEditing();
}
}
''' <summary>
''' Sets the colors for the specified chart series.
''' </summary>
''' <param name="editorControl">The spreadsheet editor control.</param>
''' <param name="seriesIndex">Index of the series.</param>
Public Sub SetColorsForChartSeriesOfXlsxChart(editorControl As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl, seriesIndex As Integer)
' get visual editor for spreadsheet document
Dim spreadsheetVisualEditor As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor = editorControl.VisualEditor
' create worksheet editor
Dim worksheetEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.WorksheetEditor = spreadsheetVisualEditor.Editor.StartEditing(spreadsheetVisualEditor.FocusedWorksheet)
Try
' create editor for focused chart
Dim chartEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.SheetDrawingEditor = worksheetEditor.CreateDrawingEditor(spreadsheetVisualEditor.FocusedDrawing)
' create editor for chart properties
Dim chartPropertiesEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartPropertiesEditor = chartEditor.CreateChartPropertiesEditor()
' create editor for chart series
Dim seriesEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartDataSeriesEditor = chartPropertiesEditor.CreateChartDataSeriesEditor(chartPropertiesEditor.ChartProperties.Series(seriesIndex))
Dim appearance As New Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance(Vintasoft.Primitives.VintasoftColor.Black, Vintasoft.Primitives.VintasoftColor.Red, 3)
' set appearance for chart series
seriesEditor.SetAppearanceProperties(appearance)
Finally
spreadsheetVisualEditor.Editor.FinishEditing()
End Try
End Sub
Chart appearance: Set the colors for the chart data points of chart
Here is C#/VB.NET code that demonstrates how to set colors for the chart data points of chart:
/// <summary>
/// Sets the colors for chart data points.
/// </summary>
/// <param name="editorControl">The spreadsheet editor control.</param>
/// <param name="seriesIndex">A zero-based index of the chart series.</param>
public void SetColorsForChartDataPointsOfXlsxChart(
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl editorControl,
int seriesIndex)
{
// get visual editor for spreadsheet document
Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor spreadsheetVisualEditor = editorControl.VisualEditor;
// create worksheet editor
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.WorksheetEditor worksheetEditor =
spreadsheetVisualEditor.Editor.StartEditing(spreadsheetVisualEditor.FocusedWorksheet);
try
{
// create editor for focused chart
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.SheetDrawingEditor chartEditor =
worksheetEditor.CreateDrawingEditor(spreadsheetVisualEditor.FocusedDrawing);
// create editor for chart properties
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartPropertiesEditor chartPropertiesEditor =
chartEditor.CreateChartPropertiesEditor();
// create editor for chart series
Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartDataSeriesEditor seriesEditor =
chartPropertiesEditor.CreateChartDataSeriesEditor(chartPropertiesEditor.ChartProperties.Series[seriesIndex]);
// create new data points
Vintasoft.Imaging.Office.Spreadsheet.Document.ChartDataPoint[] dataPoints =
new Vintasoft.Imaging.Office.Spreadsheet.Document.ChartDataPoint[seriesEditor.Series.DataPoints.Length];
for (int i = 0; i < dataPoints.Length; i++)
{
// get data point from chart
Vintasoft.Imaging.Office.Spreadsheet.Document.ChartDataPoint dataPoint = seriesEditor.Series.DataPoints[i];
Vintasoft.Imaging.Office.Spreadsheet.Document.ChartMarker marker = null;
// if data point has marker
if (dataPoint.Marker != null)
{
Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance dataPointMarkerAppearance = new Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance(
Vintasoft.Primitives.VintasoftColor.Red,
Vintasoft.Primitives.VintasoftColor.Blue, 3);
// create new marker for new data point
marker = new Vintasoft.Imaging.Office.Spreadsheet.Document.ChartMarker(
dataPoint.Marker.Style,
dataPoint.Marker.Size,
dataPointMarkerAppearance);
}
Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance dataPointAppearance = new Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance(
Vintasoft.Primitives.VintasoftColor.Black,
Vintasoft.Primitives.VintasoftColor.Green, 3);
// change the color of new data point
dataPoints[i] = new Vintasoft.Imaging.Office.Spreadsheet.Document.ChartDataPoint(marker, dataPointAppearance);
}
// set new data points for chart
seriesEditor.SetDataPoints(dataPoints);
}
finally
{
spreadsheetVisualEditor.Editor.FinishEditing();
}
}
''' <summary>
''' Sets the colors for chart data points.
''' </summary>
''' <param name="editorControl">The spreadsheet editor control.</param>
''' <param name="seriesIndex">A zero-based index of the chart series.</param>
Public Sub SetColorsForChartDataPointsOfXlsxChart(editorControl As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl, seriesIndex As Integer)
' get visual editor for spreadsheet document
Dim spreadsheetVisualEditor As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetVisualEditor = editorControl.VisualEditor
' create worksheet editor
Dim worksheetEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.WorksheetEditor = spreadsheetVisualEditor.Editor.StartEditing(spreadsheetVisualEditor.FocusedWorksheet)
Try
' create editor for focused chart
Dim chartEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.SheetDrawingEditor = worksheetEditor.CreateDrawingEditor(spreadsheetVisualEditor.FocusedDrawing)
' create editor for chart properties
Dim chartPropertiesEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartPropertiesEditor = chartEditor.CreateChartPropertiesEditor()
' create editor for chart series
Dim seriesEditor As Vintasoft.Imaging.Office.Spreadsheet.Document.Editors.ChartDataSeriesEditor = chartPropertiesEditor.CreateChartDataSeriesEditor(chartPropertiesEditor.ChartProperties.Series(seriesIndex))
' create new data points
Dim dataPoints As Vintasoft.Imaging.Office.Spreadsheet.Document.ChartDataPoint() = New Vintasoft.Imaging.Office.Spreadsheet.Document.ChartDataPoint(seriesEditor.Series.DataPoints.Length - 1) {}
For i As Integer = 0 To dataPoints.Length - 1
' get data point from chart
Dim dataPoint As Vintasoft.Imaging.Office.Spreadsheet.Document.ChartDataPoint = seriesEditor.Series.DataPoints(i)
Dim marker As Vintasoft.Imaging.Office.Spreadsheet.Document.ChartMarker = Nothing
' if data point has marker
If dataPoint.Marker IsNot Nothing Then
Dim dataPointMarkerAppearance As New Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance(Vintasoft.Primitives.VintasoftColor.Red, Vintasoft.Primitives.VintasoftColor.Blue, 3)
' create new marker for new data point
marker = New Vintasoft.Imaging.Office.Spreadsheet.Document.ChartMarker(dataPoint.Marker.Style, dataPoint.Marker.Size, dataPointMarkerAppearance)
End If
Dim dataPointAppearance As New Vintasoft.Imaging.Office.Spreadsheet.Document.ShapeAppearance(Vintasoft.Primitives.VintasoftColor.Black, Vintasoft.Primitives.VintasoftColor.Green, 3)
' change the color of new data point
dataPoints(i) = New Vintasoft.Imaging.Office.Spreadsheet.Document.ChartDataPoint(marker, dataPointAppearance)
Next
' set new data points for chart
seriesEditor.SetDataPoints(dataPoints)
Finally
spreadsheetVisualEditor.Editor.FinishEditing()
End Try
End Sub
Resize a chart of XLSX worksheet
If you want to resize the chart of XLSX worksheet using mouse, you should do the following steps:
- Click on the chart that should be resized and you will see 8 resizing points, which allow to resize the chart using mouse
- Click on any resizing point and move mouse to resize the chart
Move a chart of XLSX worksheet
If you want to move (reposition) the chart of XLSX worksheet using mouse, you should do the following steps:
- Hover the chart with mouse cursor and you will see the move cursor
- Click on the chart and move the mouse to the new position of the chart
Delete the chart from XLSX worksheet
Here is C#/VB.NET code that demonstrates how to delete the chart from XLSX worksheet:
/// <summary>
/// Removes the focused chart from worksheet.
/// </summary>
/// <param name="editorControl">The spreadsheet editor control.</param>
public void RemoveFocusedChartFromXlsxWorksheet(Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl editorControl)
{
// remove focused drawing (picture, chart, graphics)
editorControl.VisualEditor.RemoveFocusedDrawing();
}
''' <summary>
''' Removes the focused chart from worksheet.
''' </summary>
''' <param name="editorControl">The spreadsheet editor control.</param>
Public Sub RemoveFocusedChartFromXlsxWorksheet(editorControl As Vintasoft.Imaging.Office.Spreadsheet.UI.SpreadsheetEditorControl)
' remove focused drawing (picture, chart, graphics)
editorControl.VisualEditor.RemoveFocusedDrawing()
End Sub