我正在尝试阅读PowerPoint VSTO项目中瀑布图的类别名称 到目前为止,我无法这样做。
以下是我的尝试:
chart.SeriesCollection(x).Axes(y).CategoryNames
- 此图表类型不可用chart.SeriesCollection(x).XValues
- 此图表类型不可用chart.SeriesCollection(x).Points(y).DataLabel.Text
/ .Caption
- 这会返回分值,而不是类别名称,例如-130 chart.SeriesCollection(x).DataLabels(y).Text
/ .Caption
- 与之前相同:返回点值然后,我尝试直接通过chart.ChartData.Workbook
阅读源数据,但这也无法使用。
那么,我该如何阅读类别名称?
答案 0 :(得分:2)
在撰写本文时,似乎XlChartType enumeration缺少瀑布成员。 (Waterfall的ChartType
整数值为119,枚举中缺少该值。)
由于缺少的枚举会产生各种问题,我决定编写将图表转换为枚举类型的代码,将类别名称放入数组中,然后使用PowerPoint的Undo
功能恢复图表
PowerPoint.Chart myChart = Globals.ThisAddIn.Application.ActivePresentation.Slides[1].Shapes[2].Chart;
myChart.ChartType = Office.XlChartType.xlBarStacked;
PowerPoint.Axis CategoryAxis = Globals.ThisAddIn.Application.ActivePresentation.Slides[1].Shapes[2].Chart.Axes(PowerPoint.XlAxisType.xlCategory, PowerPoint.XlAxisGroup.xlPrimary);
Array CatNames = (Array)((object)CategoryAxis.CategoryNames);
Globals.ThisAddIn.Application.CommandBars.ExecuteMso("Undo");
//Do something here with the CatNames array