ASP.NET通过OLE DB操作Excel
2012-10-22 09:51
417 查看
ASP.NET 操作Excel目前有比较多的方法,常用的有三种:COM组件,OLE DB,和NOPI插件。
#1 COM组件
优点:
(1)能读取各种版本的Excel,包括2003,2007,2010
(2)能够较好的读取Excel的显示值和实际值(包括存在公式的情况)
缺点:
(1)运行的机器需要安装了相应版本的Excel
(2)使用后不能很好的完成资源释放工作,很多时候需要通过杀掉Excel进程或者根据进程号去杀掉对应的进程来实现资源释放
#2 OleDb
优点:
(1)能读取各种版本的Excel,包括2003,2007,2010
(2)运行的机器不需要安装了相应版本的Excel
(3)没有资源释放的忧虑
缺点:
(1)不能很好地处理Excel的显示值和实际值,尤其是不能很好地处理公式
(2)列类型的判断逻辑不合理,当指定了首行作为头(header)的时候,Oledb会根据该列的前若干行数据类型类判断该列的数据类型,这会导致数据丢失。例如某列前n行都为int,列的数据类型被判断为int,那么n+1行后的非可转为int的数据都会被清空。
(3)Microsoft.Jet.OLEDB.4.0 不支持64位的操作系统,在64位的操作系统需要特殊处理。
(4)Microsoft.ACE.OLEDB.12.0 基本是Microsoft.Jet.OLEDB.4.0的替代版本,同时提供32位和64位两个版本。
#3 NPOI
优点:
(1)运行的机器不需要安装了相应版本的Excel
(2)能很好的读取Excel的实际值,包括公式的处理,堪称完美
(3)没有资源释放的忧虑
缺点:
(1)现时最新版本的NPOI版本只支持Excel2003,其官方微博宣称会在2012年底实现对Excel2007的支持,我们还是耐心等待一会吧
(2)不能很好地处理Excel的显示值,笔者试过跟踪代码,都未能发现一个和显示值完全一致的方法或者属性,这让我觉得NPOI不能很好地处理Excel的显示值
#1 COM组件
优点:
(1)能读取各种版本的Excel,包括2003,2007,2010
(2)能够较好的读取Excel的显示值和实际值(包括存在公式的情况)
缺点:
(1)运行的机器需要安装了相应版本的Excel
(2)使用后不能很好的完成资源释放工作,很多时候需要通过杀掉Excel进程或者根据进程号去杀掉对应的进程来实现资源释放
#2 OleDb
优点:
(1)能读取各种版本的Excel,包括2003,2007,2010
(2)运行的机器不需要安装了相应版本的Excel
(3)没有资源释放的忧虑
缺点:
(1)不能很好地处理Excel的显示值和实际值,尤其是不能很好地处理公式
(2)列类型的判断逻辑不合理,当指定了首行作为头(header)的时候,Oledb会根据该列的前若干行数据类型类判断该列的数据类型,这会导致数据丢失。例如某列前n行都为int,列的数据类型被判断为int,那么n+1行后的非可转为int的数据都会被清空。
(3)Microsoft.Jet.OLEDB.4.0 不支持64位的操作系统,在64位的操作系统需要特殊处理。
(4)Microsoft.ACE.OLEDB.12.0 基本是Microsoft.Jet.OLEDB.4.0的替代版本,同时提供32位和64位两个版本。
#3 NPOI
优点:
(1)运行的机器不需要安装了相应版本的Excel
(2)能很好的读取Excel的实际值,包括公式的处理,堪称完美
(3)没有资源释放的忧虑
缺点:
(1)现时最新版本的NPOI版本只支持Excel2003,其官方微博宣称会在2012年底实现对Excel2007的支持,我们还是耐心等待一会吧
(2)不能很好地处理Excel的显示值,笔者试过跟踪代码,都未能发现一个和显示值完全一致的方法或者属性,这让我觉得NPOI不能很好地处理Excel的显示值
相关文章推荐
- 告别ASP.NET操作EXCEL的烦恼(总结篇)
- asp.net 对Excel表的操作
- asp.net操作Excel总结 (转帖)
- asp.net中操作Excel全集
- ASP.NET操作Excel备忘录
- ASP.NET 操作Excel 备忘录
- Asp.net操作Excel更轻松的实现代码
- ASP.NET操作EXCEL时出现的错误 Retrieving the COM class factory for component with CLSID
- Asp.net操作IIS(调试通过)
- Asp.net/c#+OleDb操作excel文件(二),数据传输使用Parameters
- asp.net 操作Excel 连接字符串
- Asp.Net Excel 操作 类
- Asp.net操作Excel----NPOI!!!!1
- asp.net操作Excel总结
- Asp.Net中Excel操作权限的问题
- asp.net中通过ALinq让Mysql操作变得如此简单
- ASP.NET jQuery 食谱19 (通过jQuery操作GridView技巧集合)
- DevExpress ASP.NET 使用经验谈(5)-通过ASPxGridView实现CRUD操作
- Asp.NET 操作 Excel 组件时遇到“ System.UnauthorizedAccessException: 拒绝访问。”的解决办法
- asp.net 操作excel