读取Excel。。。

最近要给项目写一些小工具,来方便数据初始化,不过囧的时操作Office 2010 时遇到了小麻烦,怎么连接Excel时都是报错 “未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序”。

系统为Server 2008 R2 ,查了各种资料,都不能完全解决问题,其实主要问题在于使用的连接字符串有问题。

很久以前一直使用的如下:

View Code
1  private  const  string CONST_CONNECTIONSTRING =  " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\MyExcel.xls;Extended Properties=Excel 8.0; ";

 

现在使用2010时,需要使用如下连接字符串:

View Code
1  private  const  string CONST_CONNECTIONSTRING =  " Provider=Microsoft.ACE.OLEDB.12.0;Data source=C:\\MyExcel.xls;Extended Properties=Excel 12.0; ";

 

此问题就这样的解决了。。。

 

以下为读取Excel的小部分源码:

View Code
 1          ///   <summary>
 2           ///  取得Excel中的数据
 3           ///   </summary>
 4           ///   <param name="excelPath"> excel路径 </param>
 5           ///   <param name="sheetName"> 工作表名称 </param>
 6           ///   <param name="queryStr"> 查询语句 </param>
 7           ///   <returns> DataTable </returns>
 8           internal DataTable GetExcelDate( string excelPath,  string sheetName,  string queryStr)
 9         {
10              string connStr =  string.Empty;
11             DataTable table =  new DataTable();
12             OleDbDataReader reader =  null;
13 
14              if ( string.IsNullOrEmpty(sheetName))
15             {
16                 sheetName = GetFirstSheet(excelPath);
17             }
18 
19              if ( string.IsNullOrEmpty(excelPath))
20             {
21                  return  null;
22             }
23 
24             connStr =  string.Format(CONST_CONNECTIONSTRING, excelPath);
25 
26              if ( string.IsNullOrEmpty(queryStr))
27             {
28                 queryStr =  string.Format( " Select * from [{0}] ", sheetName);
29             }
30 
31             GetExcelReader(connStr, queryStr,  out reader);
32 
33              //  填充数据表
34              AddExcelDataTable(table, reader);
35 
36              //  回收使用过的资源
37              CloseConn();
38             CloseReader(reader);
39 
40              return table;
41         }

 

以上读取的方法使用的为ADO.NET,当然也可以使用OFFICE提供的API,那就看自己用哪种方法顺手了。

你可能感兴趣的:(Excel)