You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Excel Interop生成图表列数超16时显示错误问题求助

问题根因

代码的核心问题是调用ChartWizard时没有显式指定PlotBy(系列绘制方向)参数,Excel会根据选中数据源的行列数自动判断绘制方向:

  • 当列数小于16时,数据源行数(16行)大于列数,Excel默认按列生成系列,符合预期
  • 当列数大于16时,数据源列数大于行数,Excel自动切换为按行生成系列,完全不符合数据组织逻辑,导致图表显示异常
    另外你只手动设置了第一个系列的X轴数值,其余系列的X轴值未统一配置,也会导致部分曲线显示异常。

修复方案

修改两处代码即可:

  1. 调用ChartWizard时显式指定按列生成系列
  2. 遍历所有系列统一设置X轴数值

修改后的代码片段

// 前面原有代码保持不变
xlRange2 = xlWorksheet2.Range[xlWorksheet2.Cells[1, 2], xlWorksheet2.Cells[16, colCount2]]; //此处为Y轴数值和系列名称
Excel.Chart ct2 = xlWorksheet2.Shapes.AddChart(null, 1, 275, 650, 350).Chart;
var missing = System.Type.Missing;

// 第四个参数显式指定按列生成系列,避免Excel自动判断出错
ct2.ChartWizard(xlRange2, Excel.XlChartType.xlLineMarkers, missing, Excel.XlRowCol.xlColumns, missing, missing, missing, missing, "Frequency[Hz]", "Absorption Coefficient[-]", missing);

// 遍历所有系列统一设置X轴数值,不要仅设置第一个系列
foreach (Excel.Series oSeries2 in ct2.SeriesCollection())
{
    oSeries2.XValues = xlWorksheet2.get_Range("A2", "A16");  //此处为X轴数值
}

内容的提问来源于stack exchange,提问作者Gürkan Özdem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:06:02