前一段时间做的项目需要对Excel进行操作,具体是将Excel中的数据导入到数据库(SQLserver2000)中,还有就是将gridview中的数据导入到标准的Excel文件。之所以说标准的Excel文件,是因为网上好多关于这方面的程序代码,大多数是比较简单的那种,导出的其实是html文件,只是加个".xls"后缀。
将数据导出成标准的Excel文件需要用到Microsoft.Office.Interop.Excel对象。我在使用的过程中,遇到了几个问题,用了将近两周的时间,才将其完整解决。
代码放入了我的代码库,有兴趣的朋友可以提下意见:gene17.icode.csdn.net
下面是遇到的问题以及解决方法:
一、约定
系统运行所需的基本环境已经配置完毕(IIS+framework2.0+SQLserver2000)
二、Owc11组件
这个组件不是我的程序中用到的,因为有三个人参与了程序的开发,但是与Office开发相关,在这里就写上了。
微软给出了Owc11组件的安装包。安装即可。微软官方网站下载地址:
http://www.microsoft.com/downloads/details.aspx?FamilyID=7287252C-402E-4F72-97A5-E0FD290D4B76&displaylang=zh-cn ;
三、Microsoft.Office.Interop.Excel 引用
这个问题并不难,只要保证Excel的版本一致(Excel11.0),网上有很多讲到了解决的方法。但确实浪费了我不少的时间。
首先要保证服务器上安装Office2003的Excel组件。
1)服务器尚未安装office2003
如果服务器尚未安装Office2003,在安装的时候,要选择“自定义”安装,而且选择应用程序的高级自定义安装。
2)如果服务器已经安装了Office2003,则需要添加功能。运行安装文件,选择“添加或删除功能”。 点击“下一步”,与安装时一样,需要选择“选择应用程序的高级自定义”。
点击“下一步”,选择需要添加的组件部分“Microsoft Office Excel”,点开下面的节点,选择“.NET可编程支持”,点击前面的倒三角形标识,选择“从本机运行”,点击下一步就可以了。
四.80070005权限问题。
1.“开始”——>“运行”,输入“dcomcnfg.exe”,依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置",
2.在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框。
3:点击"标识"标签,选择"交互式用户"
4:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"everyone"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
5:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"everyone"用户,然后赋予"本地访问"权限.
这样,我们便配置好了相应的Excel的DCOM权限.