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”用户并赋予权限!

转载自:http://blog.sina.com.cn/s/blog_6248dc000100g26c.html

原文地址:https://www.cnblogs.com/jicheng/p/7086308.html