Excel.ChartObject obj = (Excel.ChartObject)exSheet.ChartObjects("Chart 39");
"Chart 39"是模板中有的一个图表,我用上面的代码可以获得图表的对象,但是我怎么设置坐标轴的最大值、最小值和步进啊。(图表有3个坐标轴,1个横轴,左右各一个竖轴)。
哪位大侠帮帮忙啊,感激不尽!

解决方案 »

  1.   

    using System.Reflection;
    using System.Runtime.InteropServices;
    using Excel = Microsoft.Office.Interop.Excel;private void button1_Click(object sender, EventArgs e)
            {
                Excel.Application xlApp;   
                Excel.Workbook xlBook;
                Excel.Workbooks xlBooks;
                Excel.Range xlRange ;
                Excel.Sheets xlsheets;
                Excel.Worksheet xlSheet;
                try
                {
                    xlApp = new Excel.Application();
                    xlBooks = xlApp.Workbooks;
                    xlBook = xlBooks.Add(Missing.Value);
                    xlsheets = xlBook.Worksheets;
                    xlSheet = (Excel.Worksheet)xlsheets.get_Item(1);
                    // xlApp.DisplayAlerts = false;
                    // create cell header
                    object[] objHeaders = { "Count", "num1", "num2", "num3", "num4" };
                    // set header text
                    xlRange = xlSheet.get_Range("A1", "E1");
                    xlRange.set_Value(Missing.Value, objHeaders);
                    xlRange.Font.Bold = true;
                    xlRange.Font.Name = "Verdana";
                    xlRange.Font.Size = 10;
                    xlRange.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                    for (int i = 0; i < 13; i++)
                    {
                        xlSheet.Cells[2 + i, 1] = i;
                        xlSheet.Cells[2 + i, 2] = i+1;
                        xlSheet.Cells[2 + i, 3] = i+2;
                        xlSheet.Cells[2 + i, 4] = i+3;
                        xlSheet.Cells[2 + i, 5] = i+4;
                    }
                    Excel.Chart xlChart = (Excel.Chart)xlBook.Charts.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                    Excel.Range chartRage = xlSheet.get_Range("A1:A14", "B1:E14");
                    xlChart.ChartWizard(chartRage, Excel.XlChartType.xl3DColumn, Missing.Value, Excel.XlRowCol.xlColumns, 1, 1, true, "效率分析", "时间", "次数", Missing.Value);
                    xlBook.SaveAs(Application.StartupPath + "\\Analysis.xls", Missing.Value,
                        Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                        Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value,
                        Missing.Value, Missing.Value, Missing.Value);
                    xlBook.Close(false, Missing.Value, Missing.Value);
                    MessageBox.Show("Excel chart created under: \n" + Application.StartupPath + "\\Analysis.xls", "Confirm", MessageBoxButtons.OK);
                }
                catch (Exception ec)
                { 
                    MessageBox.Show(ec.ToString()); 
                }
                finally 
                {
                    xlRange = null;
                    xlSheet = null;
                    xlBook = null;
                    xlApp = null;
                }        }
            }
      

  2.   

    自己在excel操作,实现你所需要的功能,根据你的操作录制一个新的宏,查看一下宏的内容,基本上那些代码是通用的,在C#用相同的代码就可以实现了。
      

  3.   

    操作EXCEL,导入图表到excel
    excel
      

  4.   

     你参考一下//设置刻度
                                    Excel.Axes myaxes0 = (Excel.Axes)chart0.Axes(objmissing, Excel.XlAxisGroup.xlPrimary);
                                    myaxes0.Item(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary).HasTitle = true;
                                    myaxes0.Item(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary).AxisTitle.Text = "时间(Hour)";
                                    double d4 = Y_min_t;
                                   
                                    myaxes0.Item(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary).MinimumScale = Math.Floor(d4);
                                    myaxes0.Item(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary).MaximumScale = Math.Ceiling(X_max);