C# 使用OLEDB读取Excel文件?
您好,我正在阅读一个带有oledb的excel文件(该文件有100000行)。我必须快速阅读文件C# 使用OLEDB读取Excel文件?,c#,sql-server,excel,oledb,C#,Sql Server,Excel,Oledb,您好,我正在阅读一个带有oledb的excel文件(该文件有100000行)。我必须快速阅读文件 string conn; conn = ("Provider=Microsoft.ACE.OLEDB.12.0;" + ("Data Source=" + _filename + ";" + "Extended Properties=\"Excel 12.0;\""));
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();
然后在带有for循环的DTU表中,我将这些单元格插入DB。。如何快速阅读这个非常大的excel?并插入数据库?我用了平行法,但对我来说这不是真正的解决方案。。有什么想法吗?利用SQL的OpenXML批量插入数据,这样做对您更有效
下面是我为同样的工作编写的代码:要使用ADO将记录添加到MyTable中,可以使用类似于以下代码:
'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的:您可以看看数据库可以使用的一些方法这是一个有用的insert解决方案?我不累吗?您确定您的代码比Datatable上的经典for循环(如ıwrite up)的性能更好吗?我可能读得不够仔细。您希望从excel中读取数据并插入到另一个数据库中,可能是SQL Server,而不是在excel文件中插入记录。要阅读excel文件,我更喜欢使用ExcelDataReader,谢谢!但在第一行,它说“用C#编写的轻量级快速库,用于读取Microsoft Excel文件('97-2007)。”我有Excel 03/07/10文件。。ExcelDataReader是否支持excel 2010文件?