如何使用C#在Excel中添加图表工作表

时间:2012-08-14 17:19:48

标签: c# excel

我创建了sheet1并在工作表中填充了一些数据,使用sheet1中的数据我想创建一个绘制数据的图表工作表

try
{
    app = new Excel.Application();
    app.Visible = true;
    workbook = app.Workbooks.Add(1);
    worksheet = (Excel.Worksheet)workbook.Sheets[1];

    PopulateDateInExcel(pathtologsfolder, startdate, enddate);
    // create a chart

    Excel.Range chartRange;
    object misValue = System.Reflection.Missing.Value;
    Excel.ChartObjects xlCharts = (Excel.ChartObjects)worksheet.ChartObjects(Type.Missing);
    Excel.ChartObject myChart = (Excel.ChartObject)workbook.Charts[2];
    Excel.Chart chartPage = myChart.Chart;
    chartRange = worksheet.get_Range("AN1", "AP6");
    chartPage.SetSourceData(chartRange, misValue);
    chartPage.ChartType = Excel.XlChartType.xl3DLine; 
}
catch (Exception e)
{
    //Console.Write("Error");
}
finally
{

}

提前致谢, Excel自动化

3 个答案:

答案 0 :(得分:2)

试试这个( UNTESTED

Excel.ChartObject myChart = (Excel.ChartObject)charts.Add(10, 70, 250, 250);

而不是

Excel.ChartObject myChart = (Excel.ChartObject)workbook.Charts[2];

然后创建图表后,使用此代码将其移至图表表

chart.Location(XlChartLocation.xlLocationAsNewSheet, Type.Missing);

答案 1 :(得分:0)

执行此操作的方法是使用Add method

Excel.Workbook xlWorkbook;
Excel.Chart chartName = (Excel.Chart)xlWorkbook.Charts.Add();

诚然,至少在我的实验中这会造成麻烦,因为默认情况下使用的数据集是相当随机的(Excel魔术...),因此您之后可能需要重新格式化(删除和添加数据集等),但是这就是做到这一点的方法。

编辑:

我应该注意,Excel支持文档似乎建议使用Add2 method方法,但是我没有成功使用它:

Excel.Workbook xlWorkbook;
Excel.Chart chartName = (Excel.Chart)xlWorkbook.Charts.Add2();

答案 2 :(得分:0)

Excel.Application oXL = new Excel.Application();

在那之后

oXL.Run() 并见附件:

enter image description here