这些天做个软件,需要读取 Excel 并导入到数据库中,所以研究了一下在 VC 下操作 Excel 的方法,这里做个总结,以作备忘。
一、最常用的 OLE 自动化方式
这个方式应该说是功能最全的方式,可能也是应用的最多的方式。由于这种方式采用的是隐藏启动 Office Excel 的方式,所以几乎是全能,任何功能都可以完成。不过缺点也是比较明显的:
1、采用 OLE 方式,需要用户计算机上安装有 Office Excel,否则就失败;
2、由于是隐藏启动 Office Excel,而 Mcirosoft 的一贯作风就是功能强大、体积巨大无比,所以这个速度是个很大的瓶颈,如果是批量读取的话,那...
3、它的基本方法是使用导出 .h 进行 OLE 操作,但是网上关于 Excel OLE 的完善的参考资料并不是很多,大多也是抄来抄去,所以要想很好的使用它们,恐怕还要好好的探索一下。
不过总之,这种方式在文件数目不多,对功能要求大过速度的话,这是首选。
代码可参考:http://blog.csdn.net/hyz_9257/archive/2008/12/27/3621309.aspx
(一个更好的参考代码见http://www.cppblog.com/greatws/archive/2008/09/21/62423.html )
二、ADO/ODBC 的方式
这种方式需要确保 ODBC 中已安装有 Excel 表格文件的驱动 "MICROSOFT EXCEL DRIVER (*.XLS)",所以同样依赖于 Office Excel 是否安装。
常规例子:http://www.vckbase.com/document/viewdoc/?id=421
这里不得不提的是:新加坡人
具体我在最后第六点来介绍和对比。
三、Sourceforge 上的开源 Excel 库
搜索了一下,有几个似乎人气比较高,像 libXLS,XLSlib 等,下载下来看了一下说明,好像更多是作为 php 的插件来使用的,对 C++ 似乎没多大帮助。
四、第三方收费 Excel 操作库
第三方收费的,找到一个 LibXL (注意不是 LibXLS),他的官方网站是
五、一些不需要依赖 Office Excel 的方式
网上还有一些说的不依赖 Office Excel 的方式,比如
六、重点推荐的
当当当当,BasicExcel !
他的作者和