This content is for v1.x (Discontinued). Switch to the Stable version.
The Chart
class, a versatile component within the OpenXMLOffice.Presentation
library, empowers developers to seamlessly integrate various types of charts into PowerPoint presentations. This class supports multiple chart types and configurations, allowing users to add new charts to a slide or replace existing shapes with dynamic and data-driven visualizations.
List of supported chart.
- Area Chart (2007) :
- Cluster
- Stacked
- 100% Stacked
- Bar Chart (2007) :
- Cluster
- Stacked
- 100% Stacked
- Column Chart (2007) :
- Cluster
- Stacked
- 100% Stacked
- Line Chart (2007) :
- Cluster
- Stacked
- 100% Stacked
- Cluster Marker
- Stacked Marker
- 100% Stacked Marker
- Pie Chart (2007) :
- Pie
- Doughnut
- X Y (Scatter) Chart (2007) :
- Scatter
- Scatter Smooth Line Marker
- Scatter Smooth Line
- Scatter Line Marker
- Scatter Line
- Bubble
- Combo Chart (2007) :;
Basic Code Samples
Section titled “Basic Code Samples” For each chart family ChartSetting
have its relevant options and settings for customization.
using G = OpenXMLOffice.Global_2007;using OpenXMLOffice.Presentation_2007;
public void ChartSample(PowerPoint powerPoint){ // Default Chart Type powerPoint.AddSlide(PresentationConstants.SlideLayoutType.BLANK) .AddChart(CreateDataCellPayload(), new G.AreaChartSetting<G.PresentationSetting>()); // Customized Chart Type powerPoint.GetSlideByIndex(0) .AddChart(CreateDataCellPayload(), new G.AreaChartSetting<G.PresentationSetting>() { AreaChartTypes = AreaChartTypes.STACKED }); Slide slide = powerPoint.GetSlideByIndex(1); Shape shape = slide.FindShapeByText("shape_id_1"); shape.ReplaceChart(new Chart<G.PresentationSetting>(slide, CreateDataCellPayload(), new G.BarChartSetting<G.PresentationSetting>() { ChartLegendOptions = new ChartLegendOptions() { LegendPosition = ChartLegendOptions.LegendPositionValues.RIGHT } }));}
ChartSetting<G.PresentationSetting>
Options
Section titled “ChartSetting<G.PresentationSetting> Options”Property | Type | Details |
---|---|---|
hyperlinkProperties | HyperlinkProperties | Hyperlink properties for the entire chart |
isSecond | bool | If combo chart this can be used to indicate secondary axis activation. |
chartDataSetting | ChartDataSetting | This setting enables users to customize both the input chart data range and value from cell labels with precision. |
chartGridLinesOptions | ChartGridLinesOptions | This feature offers crisp options for users to finely customize the gridline settings of the chart. |
chartLegendOptions | ChartLegendOptions | This feature offers crisp options for users to finely customize the gridline settings of the chart. |
applicationSpecificSetting | <ApplicationSpecificSetting> | This is generic class setting. For Presentation it is
|
PresentationSetting
Options
Section titled “PresentationSetting Options”Property | Type | Details |
---|---|---|
height | uint | This parameter precisely determines the height of the entire chart. |
width | uint | This parameter precisely determines the width of the entire chart. |
x | uint | This parameter precisely determines the X position of the entire
chart. |
y | uint | This parameter precisely determines the Y position of the entire
chart. |
ChartDataSetting
Options
Section titled “ChartDataSetting Options”Property | Type | Details |
---|---|---|
chartDataColumnEnd | uint | Specify the number of columns for chart series; set to 0 for utilizing
all columns. |
chartDataColumnStart | uint | Specify the starting column for chart data. Default: 0 |
chartDataRowEnd | uint | Specify the number of rows for chart series; set to 0 for utilizing all
rows. |
chartDataRowStart | uint | Specify the starting row for chart data. Default: 0 |
advancedDataLabel | AdvancedDataLabel | Used for Data Label Option From Office 2013 |
ChartGridLinesOptions
Options
Section titled “ChartGridLinesOptions Options”Property | Type | Details |
---|---|---|
isMajorCategoryLinesEnabled | bool | Toggle visibility of major category lines with clarity. |
isMajorValueLinesEnabled | bool | Toggle visibility of major value lines with clarity. |
isMinorCategoryLinesEnabled | bool | Toggle visibility of minor category lines with clarity. |
isMinorValueLinesEnabled | bool | Toggle visibility of minor value lines with clarity. |
ChartLegendOptions
Options
Section titled “ChartLegendOptions Options”Property | Type | Details |
---|---|---|
isEnableLegend | bool | Toggle visibility of legend with clarity. |
isLegendChartOverLap | bool | Activate the option for a sleek and tidy display by allowing the legends to overlap. |
isBold | bool | Provide the option to set text in a bold format with clarity. |
isItalic | bool | Provide the option to set text in a italic format with clarity. |
fontSize | float | Provide the option to set font size with clarity. |
fontColor | string? | Optional font color using hex code (without #). |
underLineValues | UnderLineValues | Text underline options. Default: None |
strikeValues | StrikeValues | Text strike options |
legendPosition | LegendPositionValues | Legend position in chart. Default: Bottom |
ChartDataLabel
Options
Section titled “ChartDataLabel Options”This is base data label class extended by each chart type to give more specific/relevant options
Property | Type | Details |
---|---|---|
separator | string | Data label text separator used if multiple label enabled |
showCategoryName | bool | Show category name in label |
showLegendKey | bool | Show legend key in label |
showSeriesName | bool | Show series name in label |
showValue | bool | Show value in label |
isBold | bool | Set label bold |
isItalic | bool | Set label italic |
fontSize | float | Set label font size |
fontColor | string? | Set label font color |
underLineValues | UnderLineValues | Set label underline type |
strikeValues | StrikeValues | Set label strike type |
AdvancedDataLabel
Options (2013)
Section titled “AdvancedDataLabel Options (2013)”Property | Type | Details |
---|---|---|
showValueFromColumn | bool | Show Advanced data label |
valueFromColumn | Dictionary<uint, uint> | This option allows configuring a key map where series corresponds to the key, and the value is mapped to a target column based on cell column configuration. |
ChartAxesOptions
Options
Section titled “ChartAxesOptions Options”This properties give control over the X and Y axes. (Relate placement based on your chart option)
Property | Type | Details |
---|---|---|
invertVerticalAxesOrder | string? | |
invertHorizontalAxesOrder | string? | |
isHorizontalAxesEnabled | bool | |
isHorizontalBold | bool | |
isHorizontalItalic | bool | |
horizontalFontSize | float | |
horizontalFontColor | string? | |
horizontalUnderLineValues | UnderLineValues | |
horizontalStrikeValues | StrikeValues | |
isVerticalBold | bool | |
isVerticalItalic | bool | |
verticalFontSize | float | |
verticalFontColor | string? | |
verticalUnderLineValues | UnderLineValues | |
verticalStrikeValues | StrikeValues | |
isVerticalAxesEnabled | bool |
ChartSeriesSetting
Options
Section titled “ChartSeriesSetting Options”Property | Type | Details |
---|---|---|
borderColor | string? | Explicit border color for current data series |
ChartDataPointSettings
Options
Section titled “ChartDataPointSettings Options”Property | Type | Details |
---|---|---|
fillColor | string? | Explicit fill color for one specific data point in a series |
borderColor | string? | Explicit border color for one specific data point in a series |
Embedded Excel Component
Section titled “Embedded Excel Component”Embedded excel can be accessed using GetWorkBookStream
return OpenXMLOffice.Spreadsheet Worksheet. Refer Worksheet section for more details
Chart chart = powerPoint.AddSlide(PresentationConstants.SlideLayoutType.BLANK) .AddChart(CreateDataCellPayload(), new G.LineChartSetting());using Stream stream = chart.GetWorkBookStream();// Creating a new excel instance object from chart base source// Note: Updating data directly in Excel will now reflect in PPT Chart graphic cache on open.// Use Chart object data for embedding chart data and this handle for extending addition of data,logo,etc...X.Excel excel = new(stream);Worksheet worksheet = excel.GetWorkSheet("Sheet1");worksheet.SetRow(12, 1, new DataCell[] {new() { cellValue = "Added Additional Data To Chart", dataType = CellDataType.STRING }}, new());// Save Content after completion to the source stream// Important OpenXML-Office components work with memory the source file/stream will not get replaced automatically// You can save to same source to overwrite it or make a duplicate copy without disturbing the sourceexcel.SaveAs(chart.GetWorkBookStream());