C#读取Excel方法


 方法一:使用OleDb

   using System.Data.OleDb

 

     ///   <summary>
    
///  返回Excel数据源
    
///   </summary>
    
///   <param name="filename"> 文件路径 </param>
    
///   <returns></returns>
     static   public  DataSet ExcelToDataSet( string  filename)
    {
        DataSet ds;
        
string  strCon  =   " Provider=Microsoft.Jet.OLEDB.4.0; "   +
                        
" Extended Properties=Excel 8.0; "   +
                        
" data source= "   +  filename;
        OleDbConnection myConn 
=   new  OleDbConnection(strCon);
        
string  strCom  =   "  SELECT * FROM [Sheet1$] " ;
        myConn.Open();
        OleDbDataAdapter myCommand 
=   new  OleDbDataAdapter(strCom, myConn);
        ds 
=   new  DataSet();
        myCommand.Fill(ds);
        myConn.Close();
        
return  ds;
    }

 

方法二: 使用COM

    导入Microsoft.Excel
    
using  Excel =  Microsoft.Office.Interop.Excel;
    
using  System.Diagnostics;

    
public   class  ExcelHelper
    {
        
private  Excel._Application excelApp;
        
private   string  fileName  =   string .Empty;
        
private  Excel.WorkbookClass wbclass;
        
public  ExcelHelper( string  _filename)
        {
            excelApp 
=   new  Excel.Application();
            
object  objOpt  =  System.Reflection.Missing.Value;
            wbclass 
=  (Excel.WorkbookClass)excelApp.Workbooks.Open(_filename, objOpt,  false , objOpt, objOpt, objOpt,  true , objOpt, objOpt,  true , objOpt, objOpt, objOpt, objOpt, objOpt);
        }
        
/**/
        
///   <summary>
        
///  所有sheet的名称列表
        
///   </summary>
        
///   <returns></returns>
         public  List < string >  GetSheetNames()
        {
            List
< string >  list  =   new  List < string > ();
            Excel.Sheets sheets 
=  wbclass.Worksheets;
            
string  sheetNams  =   string .Empty;
            
foreach  (Excel.Worksheet sheet  in  sheets)
            {
                list.Add(sheet.Name);
            }
            
return  list;
        }
        
public  Excel.Worksheet GetWorksheetByName( string  name)
        {
            Excel.Worksheet sheet 
=   null ;
            Excel.Sheets sheets 
=  wbclass.Worksheets;
            
foreach  (Excel.Worksheet s  in  sheets)
            {
                
if  (s.Name  ==  name)
                {
                    sheet 
=  s;
                    
break ;
                }
            }
            
return  sheet;
        }
        
/**/
        
///   <summary>
        
///
        
///   </summary>
        
///   <param name="sheetName"> sheet名称 </param>
        
///   <returns></returns>
         public  Array GetContent( string  sheetName)
        {
            Excel.Worksheet sheet 
=  GetWorksheetByName(sheetName);
            
// 获取A1 到AM24范围的单元格
            Excel.Range rang  =  sheet.get_Range( " A1 " " AM24 " );
            
// 读一个单元格内容
            
// sheet.get_Range("A1", Type.Missing);
            
// 不为空的区域,列,行数目
            
//    int l = sheet.UsedRange.Columns.Count;
            
//  int w = sheet.UsedRange.Rows.Count;
            
//   object[,] dell = sheet.UsedRange.get_Value(Missing.Value) as object[,];
            System.Array values  =  (Array)rang.Cells.Value2;
            
return  values;
        }

        
public   void  Close()
        {
            excelApp.Quit();
            excelApp 
=   null ;
        }

    }

 

 

 转自:http://www.cnblogs.com/seaboy/archive/2008/10/16/1312512.html

你可能感兴趣的:(Excel)