我有一个带有图表的Excel文件。
我可以使用Open XML SDK提供的chartPart属性来引用该图表。
如何从中获取图表类型(条形图,饼图,线条等)?
P.S。我已经查看了这个chartPart变量的结构,但我一直无法弄清楚究竟在哪里找到类型,轴,颜色等信息。
答案 0 :(得分:1)
您可以使用反射概念获得图表类型
private IEnumerable<Type> GetExcelChartTypes()
{
IEnumerable<Type> items = new List<Type>();
try
{
DocumentFormat.OpenXml.Drawing.Charts.LineChart linechart = new DocumentFormat.OpenXml.Drawing.Charts.LineChart();
items = Assembly.GetAssembly(linechart.GetType()).GetTypes().Where(S => S.Name.EndsWith("Chart"));
}
catch
{
}
return items;
}
在此之前使用
获取所有图表部分IEnumerable chartparts = spreadsheet.DrawingsPart.ChartParts;
然后使用以下行获取图表对象
的IEnumerable charts = chartpart.ChartSpace.ChildElements.OfType();
每个图表对象都有绘图区域对象get,并使用GetType()获取对象类型。
那么你肯定会得到图表的名称。