Excel图表类型垂直值

时间:2015-01-12 14:03:44

标签: c# .net excel charts

很长一段时间我都在尝试生成这样的图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 个答案:

答案 0 :(得分:8)

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

using Excel = Microsoft.Office.Interop.Excel;

chartPage1.ChartType = Excel.XlChartType.xlBarClustered

您可能需要根据您希望它们的显示方式调整网格线。如果需要,我可以为此提供更多代码。

编辑 - 另外,不要忘记

chartPage1.PlotBy = Excel.XlRowCol.xlColumns;

答案 1 :(得分:1)

我不知道如何在代码中chartPage1.SetSourceData(chartRange1, Type.Missing);评论它的工作正常,可能有两个数据源由注释行设置,一个由系列集合设置。