看过很多介绍数据导入导出的例子,结果都速度方面很令人失望
有导入DataTable/DataSet,然后逐行导入SQL/ACCESS的 有使用BCP导入的 不知道为什么 就是没有介绍用ACCESS来导入导出的(当然 也可能碰巧我搜索到的都不是)
难道大家都没有发现 ACCESS在导入导出方面其实很优秀吗?
好了 废话不多说 一方面为了给自己今后使用留个备份 一方面也为和我一样需要这个功能的朋友分享一下小小心得
我就直接给核心代码了 很简单
首先 添加引用Microsoft Access 11.0 Object Library
ACCESS 2003有宏安全性级别这个设置,要是你的安全级别设置的不是低,很可能出现一个打开的确认对话框
'获取当前ACCESS宏安全性级别
Dim keyValue As String
keyValue = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Security", "Level", "1")
'将ACCESS宏安全性级别设为1(最低)
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Security", "Level", "1", Microsoft.Win32.RegistryValueKind.DWord)
Dim accApp As New Access.Application
Try
accApp.Visible = False
accApp.OpenCurrentDatabase("ACCESS数据库路径,比如E:\A1.MDB")
accApp.DoCmd.TransferSpreadsheet(Access.AcDataTransferType.acExport, Access.AcSpreadSheetType.acSpreadsheetTypeExcel4, "ACCESS数据库中的某个表", "要导出到的EXCEL文件路径",True) '最后一个True表示,Excel文件要不要第一行的列标题
Catch ex As Exception
Throw
Finally
accApp.Quit()
'将ACCESS宏安全性级别改为原值
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Security", "Level", keyValue, Microsoft.Win32.RegistryValueKind.DWord)
End Try
以上是利用ACCESS把数据直接导出到EXCEL的用法 大家可以自己做很多其他的功能
配合ACCESS的导入导出规格 可以真正实现极速的从文件文件到数据库的导入功能
ACCESS的导入导出功能很强大,值得大家好好发掘一下~~
鄙陋之见,请多多指正