如上图,上面的表格统计我已做好,但是图表区实在是无从下手,修改好多次都没达到效果,请高手指点:
附上部分我的代码作为参考(图表统计09-10年 e%的数据,数据做了修改,紧供参考) GC.Collect();
ApplicationClass excel;
int rowIndex = 1;
int colIndex = 0;
_Workbook xBk;
_Worksheet xSt;
string sTimes = DateTime.Now.ToString("yyyyMMddHHmmss");
string strFileName = "";
System.IO.FileInfo file; excel = new ApplicationClass();
xBk = excel.Workbooks.Add(true);
xSt = (_Worksheet)xBk.ActiveSheet;
//****此处表格数据处理省略
//下面是制作图表的代码
//确认图表位置
int get_width = Convert.ToInt32(xSt.get_Range(excel.Cells[1, 1], excel.Cells[1, 14 + 2]).Width);
int get_height = Convert.ToInt32(xSt.get_Range(excel.Cells[2, 1], excel.Cells[7, 1]).Height) * 2;
int get_Top = Convert.ToInt32(xSt.get_Range(excel.Cells[1, 1], excel.Cells[14, 1]).Height); Excel.ChartObjects charts = (Excel.ChartObjects)xSt.ChartObjects(Type.Missing);
Excel.ChartObject chartObj = charts.Add(0, get_Top, get_width, get_height);
Excel.Chart v_Chart = chartObj.Chart;
//确认图表数据位置
Excel.Range v_Range = xSt.get_Range(excel.Cells[2,1], excel.Cells[rowIndex -1, 15]); v_Chart.ChartWizard(v_Range, XlChartType.xlLineMarkers,0, XlRowCol.xlRows, 1,3, true, "ccaSC", "Month", "Percent", ""); v_Chart.ChartArea.Border.ColorIndex = 45;
v_Chart.ChartArea.AutoScaleFont = true;
v_Chart.ChartArea.Interior.ColorIndex = 19;
v_Chart.ChartArea.Border.Weight = Excel.XlBorderWeight.xlThin; v_Chart.PlotArea.Interior.ColorIndex = 34;
v_Chart.PlotArea.Border.LineStyle = Excel.XlLineStyle.xlLineStyleNone;
v_Chart.PlotArea.Border.ColorIndex = 46;
v_Chart.PlotArea.Border.Weight = Excel.XlBorderWeight.xlMedium;
v_Chart.PlotArea.Height = 150; v_Chart.HasTitle = true;
v_Chart.ChartTitle.Text = "Monthly NC & RE Trends";
v_Chart.ChartTitle.Font.Name = "Arial";
v_Chart.ChartTitle.Font.Size = 10;
v_Chart.ChartTitle.Font.Bold = true;
v_Chart.Legend.Position = XlLegendPosition.xlLegendPositionTop; Excel.SeriesCollection v_SeriesCollection = (Excel.SeriesCollection)v_Chart.SeriesCollection(Type.Missing); v_SeriesCollection.Item(1).Delete(); //v_SeriesCollection.Item(7).Delete();
v_SeriesCollection.Item(1).HasDataLabels = true;
//v_SeriesCollection.Item(7).HasDataLabels = true;
v_SeriesCollection.Item(1).ChartType = XlChartType.xlLineMarkers;
//v_SeriesCollection.Item(7).ChartType = XlChartType.xlLineMarkers; v_SeriesCollection.Item(1).Name = "Year 2009";
//v_SeriesCollection.Item(7).Name = "Year 2010"; v_Chart.Legend.Font.Name = "Arial";
v_Chart.Legend.Font.Size = 8;
Excel.Series v_Series = v_SeriesCollection.Item(v_SeriesCollection.Count);
以上代码产生的图表达不到上图的效果,高手指点下如何修改
附上部分我的代码作为参考(图表统计09-10年 e%的数据,数据做了修改,紧供参考) GC.Collect();
ApplicationClass excel;
int rowIndex = 1;
int colIndex = 0;
_Workbook xBk;
_Worksheet xSt;
string sTimes = DateTime.Now.ToString("yyyyMMddHHmmss");
string strFileName = "";
System.IO.FileInfo file; excel = new ApplicationClass();
xBk = excel.Workbooks.Add(true);
xSt = (_Worksheet)xBk.ActiveSheet;
//****此处表格数据处理省略
//下面是制作图表的代码
//确认图表位置
int get_width = Convert.ToInt32(xSt.get_Range(excel.Cells[1, 1], excel.Cells[1, 14 + 2]).Width);
int get_height = Convert.ToInt32(xSt.get_Range(excel.Cells[2, 1], excel.Cells[7, 1]).Height) * 2;
int get_Top = Convert.ToInt32(xSt.get_Range(excel.Cells[1, 1], excel.Cells[14, 1]).Height); Excel.ChartObjects charts = (Excel.ChartObjects)xSt.ChartObjects(Type.Missing);
Excel.ChartObject chartObj = charts.Add(0, get_Top, get_width, get_height);
Excel.Chart v_Chart = chartObj.Chart;
//确认图表数据位置
Excel.Range v_Range = xSt.get_Range(excel.Cells[2,1], excel.Cells[rowIndex -1, 15]); v_Chart.ChartWizard(v_Range, XlChartType.xlLineMarkers,0, XlRowCol.xlRows, 1,3, true, "ccaSC", "Month", "Percent", ""); v_Chart.ChartArea.Border.ColorIndex = 45;
v_Chart.ChartArea.AutoScaleFont = true;
v_Chart.ChartArea.Interior.ColorIndex = 19;
v_Chart.ChartArea.Border.Weight = Excel.XlBorderWeight.xlThin; v_Chart.PlotArea.Interior.ColorIndex = 34;
v_Chart.PlotArea.Border.LineStyle = Excel.XlLineStyle.xlLineStyleNone;
v_Chart.PlotArea.Border.ColorIndex = 46;
v_Chart.PlotArea.Border.Weight = Excel.XlBorderWeight.xlMedium;
v_Chart.PlotArea.Height = 150; v_Chart.HasTitle = true;
v_Chart.ChartTitle.Text = "Monthly NC & RE Trends";
v_Chart.ChartTitle.Font.Name = "Arial";
v_Chart.ChartTitle.Font.Size = 10;
v_Chart.ChartTitle.Font.Bold = true;
v_Chart.Legend.Position = XlLegendPosition.xlLegendPositionTop; Excel.SeriesCollection v_SeriesCollection = (Excel.SeriesCollection)v_Chart.SeriesCollection(Type.Missing); v_SeriesCollection.Item(1).Delete(); //v_SeriesCollection.Item(7).Delete();
v_SeriesCollection.Item(1).HasDataLabels = true;
//v_SeriesCollection.Item(7).HasDataLabels = true;
v_SeriesCollection.Item(1).ChartType = XlChartType.xlLineMarkers;
//v_SeriesCollection.Item(7).ChartType = XlChartType.xlLineMarkers; v_SeriesCollection.Item(1).Name = "Year 2009";
//v_SeriesCollection.Item(7).Name = "Year 2010"; v_Chart.Legend.Font.Name = "Arial";
v_Chart.Legend.Font.Size = 8;
Excel.Series v_Series = v_SeriesCollection.Item(v_SeriesCollection.Count);
以上代码产生的图表达不到上图的效果,高手指点下如何修改
如zedgraph,ms chart