【问题标题】:Dynamically add range values to excel chart with C#使用 C# 将范围值动态添加到 Excel 图表
【发布时间】:2016-01-11 15:28:21
【问题描述】:

我正在尝试使用 C#.net 为 powerpoint 幻灯片生成图表。当我对数据进行硬编码时,图表可以完美运行,因此我的目标是能够从我的应用程序数据表中填充 excel 后端。我需要帮助的是定义数据范围(见下文)

 var areaworkbook = (EXCEL.Workbook)areachart.ChartData.Workbook;
 areaworkbook.Windows.Application.Visible = false;

 var dataSheet2 = (EXCEL.Worksheet)areaworkbook.Worksheets[1];
 var sc2 = areachart.SeriesCollection();

 dataSheet1.Cells.Range["A2"].Value2 = "Name 1";
 dataSheet1.Cells.Range["A3"].Value2 = "Name 2";
 dataSheet1.Cells.Range["A4"].Value2 = "Name 3";
 dataSheet1.Cells.Range["A5"].Value2 = "Name 4";
 dataSheet1.Cells.Range["B2"].Value2 = Value 1;
 dataSheet1.Cells.Range["B3"].Value2 = value 2;
 dataSheet1.Cells.Range["B4"].Value2 = value 3;
 dataSheet1.Cells.Range["B5"].Value2 = value 4 ;

 var series2 = sc2.NewSeries();
 series2.Name = "Series 2";
 series2.XValues = "'Sheet1'!$A$2:$A$5";
 series2.Values = "'Sheet1'!$C$2:$C$5";
 series2.ChartType = Office.XlChartType.xlAreaStacked;


 areachart.HasTitle = true;
 areachart.ChartTitle.Font.Bold = true;
 areachart.ChartTitle.Font.Italic = true;
 areachart.ApplyLayout(4);
 areachart.Refresh();

我将如何动态添加 A6、A7、A8...直到我的数据表完成?

【问题讨论】:

    标签: c# excel dynamic charts powerpoint


    【解决方案1】:

    只需使用循环并计算单元格地址。为了争论,我将假设数据来自 Linq 查询,尽管您可以通过任何其他方式获取它。

    int row = 2; // You expect to start here
    foreach (var data in db.MyData().Where(... whatever you need here ...))
    {
        dataSheet1.Cells.Range["A" + row].Value2 = data.Name;
        dataSheet1.Cells.Range["B" + row].Value2 = data.Value;
        row++;
    }
    
    series2.XValues = "'Sheet1'!$A$2:$A$" + row;
    series2.Values = "'Sheet1'!$C$2:$C$" + row;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-20
      相关资源
      最近更新 更多