以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 究竟是什么 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102571) |
||||
-- 作者:hbhb -- 发布时间:2017/6/22 13:33:00 -- 究竟是什么 大师:连接Excel2007,就是空表,测试连接都要1秒,是什么原因,如果打开次Excel文件后,测试连接就很快。 如果有数据测试连接更慢,同样,如果打开次Excel文件后,测试连接就很快。 |
||||
-- 作者:有点蓝 -- 发布时间:2017/6/22 14:46:00 -- 找台干净的电脑测试有没有问题? |
||||
-- 作者:shenyl0211 -- 发布时间:2017/6/22 14:50:00 -- Excel是有加载项的,加载项的多少决定了Excel的启动速度,如果所有加载项前面的对勾都去掉,就很快了。 你先测试一下直接启动Excel的速度吧。
|
||||
-- 作者:hbhb -- 发布时间:2017/6/22 17:22:00 -- 连接成功的时间,与不成功的时间。相差3秒。如果10万行的2007,连接成功要19秒。 Dim st As Date = Date.Now Dim dlg As new OpenFileDialog dlg.Filter = "Excel文件|*.xlsx" If dlg.ShowDialog = DialogResult.OK Then If Connections.TryConnect("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dlg.FileName & ";Extended Properties=\'Excel 12.0 xml;HDR=yes\'") = True \'msgbox("OK") MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") 19秒 Else MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") 1.5秒 MessageBox.Show("不成功") End If End If Dim st1 As Date = Date.Now Connections.Add("test","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dlg.FileName & ";Extended Properties=\'Excel12.0 xml;HDR=yes\'"") ‘----20秒---- MessageBox.Show("耗时: " & (Date.Now - st1).TotalSeconds & "秒") 什么玩意? |
||||
-- 作者:有点色 -- 发布时间:2017/6/22 18:04:00 -- 10万行的excel文件发上来测试。我上次测试10万行也是瞬间完成。
|
||||
-- 作者:有点色 -- 发布时间:2017/6/22 18:12:00 -- 真的是秒速
Dim dlg As new OpenFileDialog |
||||
-- 作者:hbhb -- 发布时间:2017/6/22 19:25:00 -- 您的语句少一个判断连接是否成功,不成功当然快了。我说的是保证连接成功的情况下????? 另外,Extended Properties=\'Excel 8.0 能连接Excel2007版本吗?因为连接不成功所以快了???????
|
||||
-- 作者:有点色 -- 发布时间:2017/6/22 19:44:00 -- 测试没问题,你换台电脑测试吧。 |