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