1

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

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

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

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

4

1 回答 1

2

您可以使用反射概念获得图表类型

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 = 电子表格.DrawingsPart.ChartParts;

然后使用下面的行获取图表对象

IEnumerable 图表 = chartpart.ChartSpace.ChildElements.OfType(); .

每个图表对象都会有绘图区域对象获取它并使用 GetType() 获取对象类型。

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

于 2013-12-27T05:56:54.010 回答