gpt4 book ai didi

c# - 用 OLEDB 读取 Excel 文件?

转载 作者:行者123 更新时间:2023-12-04 22:10:07 24 4
gpt4 key购买 nike

嗨,我正在使用 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();

然后在带有for循环的_DtTable中,我将这些单元格插入到数据库中。我怎样才能快速读取这个非常大的ex​​cel?并插入数据库?我使用了 Parallel.For 但这对我来说不是真正的解决方案。有什么想法吗?

最佳答案

要使用 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: http://support.microsoft.com/kb/247412

关于c# - 用 OLEDB 读取 Excel 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9228100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com