Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Area and Pie chart types #866

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions OpenXmlFormats/Drawing/BaseTypes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1274,6 +1274,23 @@ public CT_PositiveFixedPercentage AddNewShade()
this.itemsValueField.Add(null);
return obj;
}

public void AddNewLum(int dpIndex)
{
var accentsLoopIndex = dpIndex / 6;
//modValue and offValue allows to set custom tint on accent color
//in such a way we can get unique colors for each pie sector.
if (accentsLoopIndex != 0)
{
var modValue = 10000 * new Random().Next(2, 9);
var offValue = 10000 * new Random().Next(1, 5);
itemsElementNameField.Add(EG_ColorTransform.lumMod);
itemsValueField.Add(modValue.ToString());
itemsElementNameField.Add(EG_ColorTransform.lumOff);
itemsValueField.Add(offValue.ToString());
}
}

public static CT_SchemeColor Parse(XmlNode node, XmlNamespaceManager namespaceManager)
{
if (node == null)
Expand Down
51 changes: 50 additions & 1 deletion OpenXmlFormats/Drawing/Chart/AreaChart.cs
Original file line number Diff line number Diff line change
Expand Up @@ -510,8 +510,31 @@ public List<CT_Extension> extLst
this.extLstField = value;
}
}
}

public CT_UnsignedInt AddNewIdx()
{
this.idxField = new CT_UnsignedInt();
return this.idxField;
}

public CT_UnsignedInt AddNewOrder()
{
this.orderField = new CT_UnsignedInt();
return this.orderField;
}

public CT_AxDataSource AddNewCat()
{
this.catField = new CT_AxDataSource();
return this.catField;
}

public CT_NumDataSource AddNewVal()
{
this.valField = new CT_NumDataSource();
return this.valField;
}
}

[Serializable]

Expand Down Expand Up @@ -700,5 +723,31 @@ public List<CT_Extension> extLst
this.extLstField = value;
}
}

public CT_Boolean AddNewVaryColors()
{
this.varyColorsField = new CT_Boolean();
return this.varyColorsField;
}

public CT_UnsignedInt AddNewAxId()
{
CT_UnsignedInt si = new CT_UnsignedInt();
if (this.axIdField == null)
this.axIdField = new List<CT_UnsignedInt>();
axIdField.Add(si);
return si;
}

public CT_AreaSer AddNewSer()
{
CT_AreaSer newSer = new CT_AreaSer();
if (this.serField == null)
{
this.serField = new List<CT_AreaSer>();
}
this.serField.Add(newSer);
return newSer;
}
}
}
20 changes: 20 additions & 0 deletions OpenXmlFormats/Drawing/Chart/Chart.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10371,6 +10371,15 @@ public CT_Pie3DChart AddNewPie3DChart()
return newobj;
}

public CT_PieChart AddNewPieChart()
{
if (this.pieChartField == null)
this.pieChartField = new List<CT_PieChart>();
CT_PieChart newobj = new CT_PieChart();
this.pieChartField.Add(newobj);
return newobj;
}

public CT_ScatterChart AddNewScatterChart()
{
if (this.scatterChartField == null)
Expand Down Expand Up @@ -10612,6 +10621,17 @@ public CT_BarChart AddNewBarChart()
return ctchart;
}

public CT_AreaChart AddNewAreaChart()
{
CT_AreaChart ctchart = new CT_AreaChart();
if (this.areaChartField == null)
{
this.areaChartField = new List<CT_AreaChart>();
}
this.areaChartField.Add(ctchart);
return ctchart;
}

public CT_LineChart AddNewLineChart()
{
CT_LineChart ctchart = new CT_LineChart();
Expand Down
43 changes: 42 additions & 1 deletion OpenXmlFormats/Drawing/Chart/PieChart.cs
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,23 @@ public List<CT_Extension> extLst
this.extLstField = value;
}
}

public CT_PieSer AddNewSer()
{
CT_PieSer newSer = new CT_PieSer();
if (this.serField == null)
{
this.serField = new List<CT_PieSer>();
}
this.serField.Add(newSer);
return newSer;
}

public CT_Boolean AddNewVaryColors()
{
this.varyColorsField = new CT_Boolean();
return this.varyColorsField;
}
}

[Serializable]
Expand Down Expand Up @@ -311,7 +328,7 @@ public class CT_PieSer

public CT_PieSer()
{

dPt = new List<CT_DPt>();
}
public static CT_PieSer Parse(XmlNode node, XmlNamespaceManager namespaceManager)
{
Expand Down Expand Up @@ -515,6 +532,30 @@ public List<CT_Extension> extLst
this.extLstField = value;
}
}

public CT_UnsignedInt AddNewIdx()
{
this.idxField = new CT_UnsignedInt();
return this.idxField;
}

public CT_UnsignedInt AddNewOrder()
{
this.orderField = new CT_UnsignedInt();
return this.orderField;
}

public CT_AxDataSource AddNewCat()
{
this.catField = new CT_AxDataSource();
return this.catField;
}

public CT_NumDataSource AddNewVal()
{
this.valField = new CT_NumDataSource();
return this.valField;
}
}


Expand Down
6 changes: 6 additions & 0 deletions main/NPOI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -777,18 +777,24 @@
<Compile Include="SS\Formula\SharedFormula.cs" />
<Compile Include="SS\UserModel\BorderDiagonal.cs" />
<Compile Include="SS\UserModel\CellCopyPolicy.cs" />
<Compile Include="SS\UserModel\Charts\AreaChartData.cs" />
<Compile Include="SS\UserModel\Charts\AreaChartSeries.cs" />
<Compile Include="SS\UserModel\Charts\AxisTickMark.cs" />
<Compile Include="SS\UserModel\Charts\BarChartData.cs" />
<Compile Include="SS\UserModel\Charts\BarChartSeries.cs" />
<Compile Include="SS\UserModel\Charts\ChartDataSource.cs" />
<Compile Include="SS\UserModel\Charts\ChartSeries.cs" />
<Compile Include="SS\UserModel\Charts\ColumnChartData.cs" />
<Compile Include="SS\UserModel\Charts\ColumnChartSeries.cs" />
<Compile Include="SS\UserModel\Charts\DataSources.cs" />
<Compile Include="SS\UserModel\Charts\LineChartData.cs" />
<Compile Include="SS\UserModel\Charts\LineChartSeries.cs" />
<Compile Include="SS\UserModel\ColorScaleFormatting.cs" />
<Compile Include="SS\UserModel\ConditionalFormattingThreshold.cs" />
<Compile Include="SS\UserModel\ConditionType.cs" />
<Compile Include="SS\UserModel\DataBarFormatting.cs" />
<Compile Include="SS\UserModel\Charts\PieChartData.cs" />
<Compile Include="SS\UserModel\Charts\PieChartSeries.cs" />
<Compile Include="SS\UserModel\DataConsolidateFunction.cs" />
<Compile Include="SS\UserModel\ExcelGeneralNumberFormat.cs" />
<Compile Include="SS\UserModel\ExtendedColor.cs" />
Expand Down
26 changes: 26 additions & 0 deletions main/SS/UserModel/Charts/AreaChartData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace NPOI.SS.UserModel.Charts
{
/// <summary>
/// Data for an Area Chart
/// </summary>
public interface IAreaChartData<Tx, Ty> : IChartData
{

/// <summary>
/// Adds the series.
/// </summary>
/// <param name="categories">The categories data source.</param>
/// <param name="values">The values data source.</param>
/// <returns>Created series.</returns>
IAreaChartSeries<Tx, Ty> AddSeries(IChartDataSource<Tx> categories, IChartDataSource<Ty> values);

/// <summary>
/// Return list of all series.
/// </summary>
List<IAreaChartSeries<Tx, Ty>> GetSeries();
}
}
19 changes: 19 additions & 0 deletions main/SS/UserModel/Charts/AreaChartSeries.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace NPOI.SS.UserModel.Charts
{
public interface IAreaChartSeries<Tx, Ty> : IChartSeries
{
/// <summary>
/// Return data source used for category axis data.
/// </summary>
IChartDataSource<Tx> GetCategoryAxisData();

/// <summary>
/// Return data source used for value axis.
/// </summary>
IChartDataSource<Ty> GetValues();
}
}
7 changes: 6 additions & 1 deletion main/SS/UserModel/Charts/BarChartData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ namespace NPOI.SS.UserModel.Charts
/// <typeparam name="Ty"></typeparam>
public interface IBarChartData<Tx, Ty> : IChartData
{

/// <summary>
/// Adds the series.
/// </summary>
/// <param name="categories">The categories data source.</param>
/// <param name="values">The values data source.</param>
/// <returns>Created series.</returns>
IBarChartSeries<Tx, Ty> AddSeries(IChartDataSource<Tx> categories, IChartDataSource<Ty> values);

/**
Expand Down
3 changes: 3 additions & 0 deletions main/SS/UserModel/Charts/ChartDataFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ public interface IChartDataFactory
IScatterChartData<Tx, Ty> CreateScatterChartData<Tx, Ty>();
ILineChartData<Tx, Ty> CreateLineChartData<Tx, Ty>();
IBarChartData<Tx, Ty> CreateBarChartData<Tx, Ty>();
IPieChartData<Tx, Ty> CreatePieChartData<Tx, Ty>();
IColumnChartData<Tx, Ty> CreateColumnChartData<Tx, Ty>();
IAreaChartData<Tx, Ty> CreateAreaChartData<Tx, Ty>();
}

}
25 changes: 25 additions & 0 deletions main/SS/UserModel/Charts/ColumnChartData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace NPOI.SS.UserModel.Charts
{
/// <summary>
/// Data for a Column Chart
/// </summary>
public interface IColumnChartData<Tx, Ty> : IChartData
{
/// <summary>
/// Adds the series.
/// </summary>
/// <param name="categories">The categories data source.</param>
/// <param name="values">The values data source.</param>
/// <returns>Created series.</returns>
IColumnChartSeries<Tx, Ty> AddSeries(IChartDataSource<Tx> categories, IChartDataSource<Ty> values);

/// <summary>
/// Returns list of all series.
/// </summary>
List<IColumnChartSeries<Tx, Ty>> GetSeries();
}
}
19 changes: 19 additions & 0 deletions main/SS/UserModel/Charts/ColumnChartSeries.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace NPOI.SS.UserModel.Charts
{
public interface IColumnChartSeries<Tx, Ty> : IChartSeries
{
/// <summary>
/// Return data source used for category axis data.
/// </summary>
IChartDataSource<Tx> GetCategoryAxisData();

/// <summary>
/// Return data source used for value axis.
/// </summary>
IChartDataSource<Ty> GetValues();
}
}
27 changes: 27 additions & 0 deletions main/SS/UserModel/Charts/PieChartData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NPOI.SS.UserModel.Charts
{
/// <summary>
/// Data for a Pie Chart
/// </summary>
public interface IPieChartData<Tx, Ty> : IChartData
{
/// <summary>
/// Adds the series.
/// </summary>
/// <param name="categories">The categories data source.</param>
/// <param name="values">The values data source.</param>
/// <returns>Created series.</returns>
IPieChartSeries<Tx, Ty> AddSeries(IChartDataSource<Tx> categories, IChartDataSource<Ty> values);

/// <summary>
/// Return list of all series.
/// </summary>
List<IPieChartSeries<Tx, Ty>> GetSeries();
}
}
22 changes: 22 additions & 0 deletions main/SS/UserModel/Charts/PieChartSeries.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NPOI.SS.UserModel.Charts
{
public interface IPieChartSeries<Tx, Ty> : IChartSeries
{
/// <summary>
/// Return data source used for category axis data.
/// </summary>
IChartDataSource<Tx> GetCategoryAxisData();

/// <summary>
/// Return data source used for value axis.
/// </summary>
IChartDataSource<Ty> GetValues();

}
}
2 changes: 2 additions & 0 deletions main/SS/UserModel/Charts/ScatterChartData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ public interface IScatterChartData<Tx,Ty> : IChartData
*/
IScatterChartSeries<Tx, Ty> AddSeries(IChartDataSource<Tx> xs, IChartDataSource<Ty> ys);

IScatterChartSeries<Tx, Ty> AddSeries(IChartDataSource<Ty> values);

/**
* @return list of all series
*/
Expand Down
Loading