【用ACCESS的视图导数据到EXCEL请仔细查看哦】从ACCESS中导数据到EXCEL高效的方法, 借鉴了网上的一种导表的方法, 尝试了下用视图也是可以的:但这种方法有缺陷的地方是可能弹出两个对话框, 一个是在access有密码的情况下, 弹出让输入密码的对话框另一个是安全对话框, 这个要改变access的宏安全级别到低才不弹出改变宏安全级别可以在access中手工设置, 用程序设置的要修改注册表感觉都不是很好解决办法, 但偶也没有想出更好的办法 。 在假设已经设置了宏安全级别的情况下, 导出实现修正如下:
view plaincopy to clipboardprint?
Access.ApplicationClass oAccess = new Access.ApplicationClass();
oAccess.Visible = false;
// 没有密码, 可以设置成空
string sDBPassword = "MyPassword"; //database password
DAO._DBEngine oDBEngine = oAccess.DBEngine;
DAO.Database oDB = oDBEngine.OpenDatabase("c:\\mydb.mdb",
false, false, ";PWD=" + sDBPassword);
oAccess.OpenCurrentDatabase("d:\\test.mdb",false,"");
oDB.Close();
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDB);
oDB = null;
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDBEngine);
oDBEngine = null;
oAccess.DoCmd.TransferSpreadsheet(Access.AcDataTransferType.acExport,
Access.AcSpreadSheetType.acSpreadsheetTypeExcel9,
"testview", "d:\\testexport.xls", true, null, null);
Access.ApplicationClass oAccess = new Access.ApplicationClass();
oAccess.Visible = false;
// 没有密码, 可以设置成空
string sDBPassword = "MyPassword"; //database password
DAO._DBEngine oDBEngine = oAccess.DBEngine;
DAO.Database oDB = oDBEngine.OpenDatabase("c:\\mydb.mdb",
false, false, ";PWD=" + sDBPassword);
oAccess.OpenCurrentDatabase("d:\\test.mdb",false,"");
oDB.Close();
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDB);
oDB = null;
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDBEngine);
oDBEngine = null;
oAccess.DoCmd.TransferSpreadsheet(Access.AcDataTransferType.acExport,
Access.AcSpreadSheetType.acSpreadsheetTypeExcel9,
"testview", "d:\\testexport.xls", true, null, null);
当然, 要用access组件, 要把access的COM组件引用到工程里, 我一般习惯的做法是先把COM引用添加上去, 编译一下, 引用的程序集包容器就出现在bin下了, 然后把这个dll文件备份一下, 工程里可以把COM引用去掉, 直接引用这几个dll就行了, 这样整个工程文件可以任意拷贝到其他机器上 。 这种方法导access效率的确是比较快的, 毕竟是交给window OS来做的但应用局限性还是比较明显的, 我推荐用OLEDB 连接access查询, 在结合http://blog.csdn.net/linaren/archive/2009/10/28/4736637.aspx这个上面的方法, 是不错的选择, 效率稍显慢些, 但灵活性比较大 。
推荐阅读
- 将Excel2007的菜单和工具栏恢复为初始状态一览大全
- 让你的Excel单元格自动调整字号技巧收获很多的
- 在Excel的日期比较函数DATEDIF的使用方法热门推荐
- 教你使用excel的match函数得到想要的数据高手进阶
- 为Excel-2007多个工作表快速创建目录收获很多的
- 比较常用的25条Excel实用操作技巧2020新发布
- 用红圈圈圈画Excel表格中的数据格推荐阅读
- Excel中双击的应用技巧一览大全
- 批量删除Excel文档中的超级链接推荐阅读
- 让你的Excel单元格自动调整字号成为攻无不克的玩家