[英]how to add 2 charts in same excel sheet using c#
我可以将一张图表添加到Excel工作表中,但是如果有2张图表,我的方法将无法正常工作。 我正在使用以下代码添加2个图表
//chart 1
Excel.ChartObjects chartObjs = (Excel.ChartObjects)xlWorkSheet.ChartObjects();
Excel.ChartObject chartObj = chartObjs.Add(150, 150, 600, 600);
Excel.Chart xlChart = chartObj.Chart;
Excel.Range xValues = xlWorkSheet.Range["A6", "A262"];
Excel.Range values = xlWorkSheet.Range["B6", "B262"];
var range = xlWorkSheet.get_Range("A6", "A262");
xlChart.SetSourceData(range);
Excel.Range chartRange = xlWorkSheet.get_Range("A6:A262");
xlChart.SetSourceData(chartRange, Type.Missing);
xlChart.ChartType = Excel.XlChartType.xlLine;
xlChart.HasLegend = false;
Excel.Series series = (Excel.Series)(xlChart.SeriesCollection(1));
series.XValues = xlWorkSheet.get_Range("B2:B262");
//2nd chart
Excel.ChartObject chartObj1 = chartObjs.Add(300, 300, 400, 400);
Excel.Chart xlChart1 = chartObj1.Chart;
xlChart1.ChartType = Excel.XlChartType.xlLine;
Excel.Series series1 = (Excel.Series)(xlChart1.SeriesCollection(1)); -- line1
series1.Values = currentVY;
series1.XValues = currentVX;
我在代码中出错的地方? 我在第1行“无效参数”处收到错误消息。
我认为您甚至在获取SeriesCollection对象之前,都需要获取范围并将其传递给第二张图表的SetSourceData方法。
就像是
var range2 = xlWorkSheet.get_Range("D6", "D262");
xlChart1.SetSourceData(range2);
但是我建议您使用基于Microsoft的OpenXML SDK的第三方库,因为如果要在Server上安装应用程序,那么当有Microsoft Office更新时,这会让您头疼,并且带有Excel Automation的应用程序不是一个好趋势,因为当应用程序上线时,它将永远困扰着您。
与Vincent Tan一起使用SpreadSheetLight( 在此处下载 )以及DocumentFormat.OpenXml(2.0)库( 在此处下载 )
要么
E-Iceblue的Spire.XLS,但增加了水印纸。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.