【问题标题】:Reverting X and Y axes of a chart from C#从 C# 还原图表的 X 和 Y 轴
【发布时间】:2014-01-01 08:48:19
【问题描述】:

我正在根据字典值创建折线图。键是长日期时间字符串,值是双精度值。所以excel看起来像这样:

上午 9:22:39 3.41

上午 9:22:40 3.91

上午 9:22:41 7.81

上午 9:22:42 2.44

上午 9:22:43 1.56

当我创建图表时,时间在 Y 轴上,双倍值在 X 轴上。我希望双打成为 Y 轴并计时 X 轴。

Excel.ChartObjects xlCharts = (Excel.ChartObjects)newWorkSheet.ChartObjects(Type.Missing);
Excel.ChartObject chart = (Excel.ChartObject)xlCharts.Add(10, 80, 300,250);             
Excel.Chart chartPage = chart.Chart;

Excel.Range chartRange = newWorkSheet.get_Range("B1", "A" + row);
chartPage.SetSourceData(chartRange, Type.Missing);
chartPage.ChartType = Excel.XlChartType.xlLine;
chartPage.HasLegend = false;

在 SetSourceData 中,我尝试同时使用列和行(第二个参数),但这并不能解决问题。有什么想法可以解决这个问题吗?

【问题讨论】:

    标签: c# excel charts office-interop


    【解决方案1】:

    假设时间是B1:B5,双精度值是A1:A5,请试试这个代码。

    Excel.ChartObjects xlCharts = (Excel.ChartObjects)newWorkSheet.ChartObjects(Type.Missing);
    Excel.ChartObject chart = (Excel.ChartObject)xlCharts.Add(10, 80, 300,250);             
    Excel.Chart chartPage = chart.Chart;
    
    Excel.Range chartRange = newWorkSheet.get_Range("A1:A5");
    chartPage.SetSourceData(chartRange, Type.Missing);
    chartPage.ChartType = Excel.XlChartType.xlLine;
    chartPage.HasLegend = false;
    
    Series series = (Series)(chart.Chart.SeriesCollection(1));
    series.XValues = newWorkSheet.get_Range("B1:B5");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 2013-09-07
      • 1970-01-01
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多