【问题标题】:How to get Excel XValue of a Chart in C#如何在 C# 中获取图表的 Excel 值
【发布时间】:2014-12-15 15:05:36
【问题描述】:

我正在编写一些代码来使用 C# 在 excle 文件中操作图表。关键要求之一是获取 Chart SeriesCollection 的 XValue 属性。我尝试按索引访问它,但它不起作用,尽管我可以在 Visual Studio 的 Watch 窗口中看到值列表。在 Watch 窗口中,我注意到 s.XValue 的类型是我以前从未见过的 dynamic{object[]},而 obj.ToString() 是 System.Object[*]。问题是如果 XValue 不支持索引,我如何从 XValue 属性中获取每个值。


顺便在网上搜索,只能找到将excel单元格范围设置为XValue的方法,但没有找到XValue的获取方法。如果有人能提供建议,我真的很感激。

Excel._Worksheet worksheet = (Excel._Worksheet)book.Worksheets[a];
Excel.ChartObject chartObj = (Excel.ChartObject)worksheet.ChartObjects(1);
if (chartObj != null)
{
   Excel.Chart chart = (Excel.Chart)chartObj.Chart;
   var s = (Excel.Series)chart.SeriesCollection(1);
   object obj = s.XValues;
   //How to get s.XValues[1], s.XValues[2], s.XValues[3]...
}

【问题讨论】:

    标签: c# vba excel charts


    【解决方案1】:

    试试这个:

    var chart = chartObj.Chart as Excel.Chart;
    var s = chart.SeriesCollection(1) as Excel.Series;
    
    var xValues = (s.XValues as object) as Array;
    
    foreach (var xVal in xValues)
    {
        MessageBox.Show(xVal.ToString());
    }
    

    还有What is this `Object[*]` type I get with COM interop?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多