日期:2011-07-15  浏览次数:20448 次

一、首先简要回顾一下如何操作Excel表  
   
      先要添加对Excel的引用。选择项目-〉添加引用-〉COM-〉添加Microsoft   Excel   9.0。(不同的office讲会有不同版本的dll文件)。  
        using   Excel;  
        using   System.Reflection;  
         
        //产生一个Excel.Application的新进程  
        Excel.Application   app   =   new   Excel.Application();  
        if   (app   ==   null)    
        {  
          statusBar1.Text   =   "ERROR:   EXCEL   couldn't   be   started!";  
          return   ;  
        }  
         
        app.Visible   =   true;   //如果只想用程序控制该excel而不想让用户操作时候,可以设置为false  
        app.UserControl   =   true;  
         
        Workbooks   workbooks   =app.Workbooks;  
       
        _Workbook   workbook   =   workbooks.Add(XlWBATemplate.xlWBATWorksheet);   //根据模板产生新的workbook  
  //     _Workbook   workbook   =   workbooks.Add("c:\\a.xls");   //或者根据绝对路径打开工作簿文件a.xls  
   
        Sheets   sheets   =   workbook.Worksheets;  
        _Worksheet   worksheet   =   (_Worksheet)   sheets.get_Item(1);  
        if   (worksheet   ==   null)    
        {  
          statusBar1.Text   =     "ERROR:   worksheet   ==   null";  
          return;  
        }  
   
        //   This   paragraph   puts   the   value   5   to   the   cell   G1  
        Range   range1   =   worksheet.get_Range("A1",   Missing.Value);  
        if   (range1   ==   null)    
        {  
          statusBar1.Text   =     "ERROR:   range   ==   null";  
          return;  
        }  
        const   int   nCells   =   2345;  
        range1.Value2   =   nCells;  
       
  二、将Excel用户界面嵌入到自己的Windows   Form中  
   
              由于目前,C#和vb.net都不支持OLE技术(参见微软支持中心Info:304562),,所以只有使用WebBrowser控件来完成此功能。(以下方法参见微软支持中心Howto:304662)  
              1、右击工具箱,选择自定义工具箱,添加COM组件,选择“Microsoft   Web   浏览器”(对应文件是\winnt\system32\shdocvw.dll),确定。在工具箱中将会出现文本为Explorer的WebBroser控件图标。  
              2、在Form1中添加WebBrowser控件。(对象名却省是axWebBrowser1)  
              3、假定要打开的excel文件是:   c:\a.xls。  
                string   strFileName   =   @"c:\a.xls";  
            Object   refmissing   =   System.Reflection.Missing.Value;  
      &nbs