如何在 C# 互操作中传递两列值以绘制折线图

how to pass two columns values to plot line chart in C# interop

我正在尝试使用 Microsoft 互操作生成 excel 文件后绘制折线图。 假设我的 A 列是日期,B 列是汇率,C 列是成交量,我想打印成交量和日期之间的图表。

我正在使用这段代码绘制折线图。

var charts = worKsheeT.ChartObjects();
var chartObject = charts.Add(60, 10, 300, 300);
var chart = chartObject.Chart;
var range = worKsheeT.get_Range("C1", "C9");
chart.SetSourceData(range);
 chart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine;

但它给了我一个图表,其中 yAxis 作为 Volume,xAxis 很简单 1,2,3,4,5....

提前致谢。

尝试添加另一个变量:

var series = chart.SeriesCollection();

然后也许

series[1].XValues = worKsheeT.get_Range("A1", "A9");

请记住,C 是 zero-based,但 Excel(即使通过互操作)是 one-based。

经过多次尝试,我得到了这个解决方案

Excel.Series series;
Excel.SeriesCollection seriesCollection;
series = seriesCollection.NewSeries();
var Values = "=Data!$B:$B";//this is range of columns
var XValues = "=Data!$A:$A";//this is range of columns
series.Name = "series name";
series.Values = Values;
series.XValues = XValues;
series.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine;