使用来自非相邻列的数据在C#中创建Excel图表

时间:2015-12-13 12:50:28

标签: c# excel charts excel-interop

我需要使用两个非相邻列中的两个范围创建一个图表,并在代码中定义哪个范围将被带到X轴和Y轴。

例如:对于两个范围M3:M15K3:K15,我需要X轴值从K3K15,Y轴值来自{{ 1}}到M3

我有一个代码从两个相邻的列创建图表:

M15

不幸的是,这段代码不够好,因为我需要能够在代码中选择自己的X轴和Y轴值。

如何更改代码,以便我能够在代码中定义将采用X轴和Y轴的范围?

提前致谢

1 个答案:

答案 0 :(得分:0)

您需要手动设置每个系列的X和Y值才能完成此操作,因为图表和系列初始化方法不包含此功能。请注意,您需要确保初始选择仅包含您的Y值,因为选择整个范围最终会创建多个系列。

以下是如何修改代码以实现此目的的示例:

Excel.Series series = chartPage.SeriesCollection().Add(xlWorkSheet.Range["M3:M15"]);
series.XValues = xlWorkSheet.Range["K3:K15"];

这也可以用于创建跨列或行分割值的图表。例如,要创建如下所示的图表,将X-Values拆分为多个列:

Chart with x-values from 2 columns

您可以使用以下代码:

Excel.ChartObject chartObject = sheet.ChartObjects().Add(0, 0, 500, 250);

Excel.Series series = chartObject.Chart.SeriesCollection().Add(xlWorkSheet.Range["C2:C7"]);
series.XValues = xlWorkSheet.Range["A2:A4,B2:B4"];