gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:29:22 25 4
gpt4 key购买 nike

我需要使用来自两个不相邻列的两个范围创建一个图表,并在代码中定义将采用 X 轴和 Y 轴的范围。

例如:对于 M3:M15K3:K15 这两个范围,我需要 X 轴值从 K3K15,Y轴值从M3M15

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

string start_chart_values = "M3";
int stop_chart_line_calc = 1 + num_of_rows_to_copy;
string stop_chart_values = "L" + stop_chart_line_calc.ToString();
double chart_location = stop_chart_line_calc * 12;
Excel.Range chartRange;

Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);
Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(2, chart_location, 300, 250);
Excel.Chart chartPage = myChart.Chart;
Excel.Axis yAxis = chartPage.Axes(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary);
yAxis.ScaleType = Excel.XlScaleType.xlScaleLogarithmic;

chartRange = xlWorkSheet.get_Range(start_chart_values, stop_chart_values);
chartPage.SetSourceData(chartRange);
chartPage.ChartType = Excel.XlChartType.xlXYScatterSmooth;
chartPage.ChartWizard(Source: chartRange, Title: "Recommended Blood Pressure", CategoryTitle: "Students Age", ValueTitle: "Blood Pressure");

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

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

提前致谢

最佳答案

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

这是一个示例,说明如何修改代码以实现此目的:

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

这也可用于创建图表,其中的值跨列或跨行拆分。例如,要创建如下所示的图表,其中 X 值分布在多个列中:

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"];

关于c# - 使用非相邻列中的数据在 C# 中创建 Excel 图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34251253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com