以文本方式查看主题

-  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
--  

真的是秒速

 

下载信息  [文件大小:1.9 MB  下载次数:2]
图片点击可在新窗口打开查看点击浏览该文件:全部凭证.rar

 

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel文件|*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
    Connections.TryConnect("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dlg.FileName & ";Extended Properties=\'Excel 8.0;HDR=yes\'")
    msgbox("OK")
End If


--  作者:hbhb
--  发布时间:2017/6/22 19:25:00
--  
您的语句少一个判断连接是否成功,不成功当然快了。我说的是保证连接成功的情况下?????
另外,Extended Properties=\'Excel 8.0  能连接Excel2007版本吗?因为连接不成功所以快了???????

--  作者:有点色
--  发布时间:2017/6/22 19:44:00
--  
 测试没问题,你换台电脑测试吧。