问题描述
我有大量excel数据的问题,需要在datagrid中显示,如果数据很小,这段代码可以工作,但对大量数据无效,需要等待很长时间。有什么绝妙的方法可以解决这个问题吗?
此代码
Stopwatch sw1 = Stopwatch.StartNew();
String path = "D:\\test.xlsb";
String sheet = "Sheet1";
String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
path+
";Extended Properties='Excel 12.0 XML;HDR=YES;';";
OleDbConnection con = new OleDbConnection(constr);
OleDbCommand oconn = new OleDbCommand("Select * From [" + sheet + "$]",con);
try
{
con.open();
OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
DataTable data = new DataTable();
sda.Fill(data);
datagrid1.ItemsSource = (System.Collections.IEnumerable)data.defaultview;
con.Close();
sw1.Stop();
Console.WriteLine("Time taken for excel roots: {0} ms",sw1.Elapsed.TotalMilliseconds);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)