Excel COM组件使用的注意事项和一些权限问题

今天将写好的程序部署到服务器上,结果出了几个莫名其妙的问题,搞了一天,终于解决了

总的来说有以下几个需要注意的地方(以下问题均是在远程访问时才会出现)

1.实例化Excel的COM组件的时候,不要直接调用类,要用Microsoft提供的接口

原来的写法:Excel.ApplicationClass excelApp = new Excel.ApplicationClass();//实例化Excel

现在的写法:Excel.Application excelApp = new Excel.ApplicationClass();//实例化Excel

直接调用类的时候,Excel不能关闭,以前采用的强制结束进程的方法在客户端没有权限

使用接口后成功解决该问题

 

2.不能直接使用Excel.Application.Workbooks.Open()方法打开文件

原来的写法:Excel.Workbook wb = excelApp.Application.Workbooks.Open(FilePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);//创建WorkBook

现在的写法:Excel.Workbooks wbs = excelApp.Workbooks;
            Excel.Workbook wb = wbs.Open(FilePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);//创建WorkBook

这个问题有点莫名其妙,Workbooks必须要实例化出来,直接越过调用时会报错,而且在本地执行时没问题,远程调用就会出错。现在还是不知道为什么?

 

3.Excel组件的权限设置

“开始”->“运行”->“dcomcnfg”->“组件服务”->“计算机”->“我的电脑”->“DCOM配置”->“Microsoft Excel 应用程序”->“属性”

“标识”标签里选择“交互式用户”

“安全”标签里全部选择“自定义”,全部添加“ASPNET”用户并赋予权限

 最后,最重要的:重新启动计算机

 

4.一些权限配置问题

通过IIS访问文件时,没有修改和删除的权限

需要赋予要操作的文件夹的权限

找了很久终于找到设定的方法

“文件夹选项”->“查看”

取消“使用简单文件共享”的勾选框(这点最重要,害我找了很久...怨念...)

打开要控制的文件夹的属性,这下就会出现了“安全”标签

然后添加“ASPNET”用户并赋予权限

 

最后,严重鄙视下微软写OFFICE COM组件的家伙,你们TMD就不能写写注释吗???

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值