如何使用Open XML SDK获取特定图表的图表类型?

时间:2013-06-26 16:56:38

标签: c# excel xml-parsing charts openxml-sdk

我有一个带有图表的Excel文件。

我可以使用Open XML SDK提供的chartPart属性来引用该图表。

如何从中获取图表类型(条形图,饼图,线条等)?

P.S。我已经查看了这个chartPart变量的结构,但我一直无法弄清楚究竟在哪里找到类型,轴,颜色等信息。

1 个答案:

答案 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()获取对象类型。

那么你肯定会得到图表的名称。