Excel图表类型垂直值

6

我尝试了很长时间才生成这样的图形 enter image description here

以下是我尝试过的代码。

            Excel.Range chartRange1;
            Excel.ChartObjects xlCharts1 = (Excel.ChartObjects)worksheet.ChartObjects(Type.Missing);
            Excel.ChartObject myChart1 = (Excel.ChartObject)xlCharts1.Add(350, 500, 500, 350);
            Excel.Chart chartPage1 = myChart1.Chart;
            chartRange1 = worksheet.get_Range("A33", "b56");
            chartPage1.SetSourceData(chartRange1, Type.Missing);
            chartPage1.ChartType = Excel.XlChartType.xlBarStacked;

            Excel.Range xValues = worksheet.Range["B33", "B56"];
            Excel.Range values = worksheet.Range["a33", "a56"];

            Excel.SeriesCollection seriesCollection = (Excel.SeriesCollection)chartPage1.SeriesCollection();

            Excel.Series series1 = seriesCollection.NewSeries();
            series1.XValues = xValues;
            series1.Values = values; 

请帮我选择适合的图表类型或者指出我的错误。

更改图表类型后,它可以完美运行,但是最后一行的文本却无法正常显示,如下图所示。 enter image description here

2个回答

8

是的,您需要更改图表类型。

using Excel = Microsoft.Office.Interop.Excel;

chartPage1.ChartType = Excel.XlChartType.xlBarClustered

你可能需要根据你想要的外观调整网格线。如果需要,我可以提供更多的代码。另外,不要忘记进行编辑。
chartPage1.PlotBy = Excel.XlRowCol.xlColumns;

1
我不知道为什么,但是当我在代码中注释掉 chartPage1.SetSourceData(chartRange1, Type.Missing); 这一行时,它可以正常工作,可能是两个数据源被设置了,一个是通过注释的代码行,另一个是通过系列集合设置的。

那么,现在这个工作了吗?我的答案应该被接受为正确答案吗 - 因为它实际上是你原来问题的答案? - ShipOfTheseus
@ShipOfTheseus 没问题,我会标记你的,但是之前已更改了图表类型,问题只是最后一个声明的问题。 - Hot Cool Stud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接