我创建了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自动化
答案 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)