Asp.Net(c#) – 读取Excel工作表

我有一个要求,从Excel电子表格进行一些导入,并一直在networking上查看各种示例,他们似乎都使用与64Bit不兼容的“Jet”驱动程序。

现在我完全知道可用的解决方法(在改变如何IIS运行等),但是我想知道是否有替代“Jet”驱动程序,所以我可以读取和生成Asp.Net的Excel工作表运行在64位服务器没有IIS修改。

上次我研究的不是一个x64的驱动程序。 我用这个来打开xls文件。 只要您使用x86编译,它就可以在64位盒子上工作。

DataSet myDataset = new DataSet(); string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + @";Extended Properties=""Excel 12.0 Xml;HDR=YES"""; OleDbConnection myData = new OleDbConnection(strConn); try { myData.Open(); } catch (OleDbException e) { try { strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + "Extended Properties=Excel 8.0;HDR=YES;"; myData = new OleDbConnection(strConn); myData.Open(); } catch (Exception e2) { strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + @";Extended Properties=""HTML Import;HDR=YES;IMEX=1"";"; myData = new OleDbConnection(strConn); myData.Open(); } } int i = 0; foreach (DataRow row in myData.GetSchema("tables").Rows) try { i++; string name = row[2].ToString().Replace("''", "'").TrimEnd('_'); DataSet ds = new DataSet(); OleDbDataAdapter d = new OleDbDataAdapter("SELECT * from [" + name + "]", strConn); d.Fill(ds); DataTable dt = ds.Tables[0].Copy(); dt.Namespace = name; myDataset.Tables.Add(dt); } catch (Exception e) { } return myDataset; 

http://npoi.codeplex.com

我自己使用IIS 6.0的64位服务器上使用它不是最简单的使用,但它工作正常(快速,可靠,不需要安装在服务器上的办公室等)。

你有没有想过给Open XML SDK一个尝试?