用OLEDB读取Excel文件?

您好我正在阅读与Oledb的Excel文件(该文件有100000行)。 我必须快速阅读文件。

string conn; conn = ("Provider=Microsoft.ACE.OLEDB.12.0;" + ("Data Source=" + _filename + ";" + "Extended Properties=\"Excel 12.0;\"")); OleDbConnection oleDBCon = new OleDbConnection(conn); oleDBCon.Open(); DataTable dt = oleDBCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string excelsheetname = dt.Rows[0].ItemArray[2].ToString(); string SSQL = "SELECT * from [" + excelsheetname + "]"; OleDbDataAdapter oleDA = new OleDbDataAdapter(SSQL, conn); DataSet ds = new DataSet(); oleDA.Fill(ds); DataTable _DtTable = ds.Tables[0]; // or [ ds ] oleDBCon.Close(); 

然后在_DtTable for循环中,我将这些单元格插入到数据库中。如何快速读取这个非常大的ex​​cel? 并插入到数据库? 我用Parallel.For但它不是真正的解决scheme..任何想法?

要使用ADO向MyTable添加logging,可以使用类似于以下的代码:

 'Create a new connection object for Book1.xls Dim conn As New ADODB.Connection conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\Book1.xls;Extended Properties=Excel 8.0;" conn.Execute "Insert into MyTable (FirstName, LastName)" & _ " values ('Bill', 'Brown')" conn.Execute "Insert into MyTable (FirstName, LastName)" & _ " values ('Joe', 'Thomas')" conn.Close 

这是从MSDN: http : //support.microsoft.com/kb/247412

利用SQL的OpenXML插件来为你做好工作

这里是我为同样的工作做的代码: 批量插入数据使用C#DataTable和SQL服务器OpenXML函数

你可以看看数据库可以使用Excelfiles的一些方法