C# 更快地将excel表复制到DataTable中
我正在尝试将一个包含100万条记录的excel工作表复制到一个数据表中。不幸的是,完成这个过程大约需要47秒。有没有更好的方法可以在更短的时间内复制这些信息 以下是将信息导入的代码:C# 更快地将excel表复制到DataTable中,c#,.net,excel,datatable,C#,.net,Excel,Datatable,我正在尝试将一个包含100万条记录的excel工作表复制到一个数据表中。不幸的是,完成这个过程大约需要47秒。有没有更好的方法可以在更短的时间内复制这些信息 以下是将信息导入的代码: 此代码未完成dtTemp是否已绑定到UI对象?文件是本地的还是网络上的?您应该明确使用StringBuilder,不是因为它速度更快,而是因为此循环会生成大量字符串。此代码不完整,因为dtTemp已绑定到UI对象?文件是本地的还是网络上的?您应该明确使用StringBuilder,不是因为它速度更快,而是因为此循
此代码未完成dtTemp是否已绑定到UI对象?文件是本地的还是网络上的?您应该明确使用StringBuilder,不是因为它速度更快,而是因为此循环会生成大量字符串。此代码不完整,因为dtTemp已绑定到UI对象?文件是本地的还是网络上的?您应该明确使用StringBuilder,不是因为它速度更快,而是因为此循环会生成大量字符串。此代码不完整,因为dtTemp已绑定到UI对象?文件是本地的还是网络上的?您应该明确地使用StringBuilder,不是因为它速度更快,而是这个循环会生成大量字符串。
String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
fileName +
";Extended Properties='Excel 12.0 XML;';";
OleDbConnection con = new OleDbConnection(constr);
OleDbCommand oconn = new OleDbCommand("Select * From [" + sheetName + "$]", con);
con.Open();
OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
dtTemp.Reset();
dtTemp.TableName = userUpload;
sda.Fill(dtTemp); //Puts imported table into the dtTemp table
con.Close();
string fields = "";
string tempString;
foreach (DataColumn col in dtTemp.Columns) //Generates SQL String from imported table
{
tempString = RemoveSpecialCharacters(col.ColumnName);
if (dtTemp.Columns.IndexOf(col) == dtTemp.Columns.Count - 1)
{
fields += " [" + tempString + "] varchar(255)";
}
else
{
fields += " [" + tempString + "] varchar(255)" + ",";
}
}
fields = fields.Trim();
// createSQLConn(fields, connection, connectionTempDB, dtTemp);
}