zoukankan      html  css  js  c++  java
  • 导出excel 的问题 Microsoft.Office.Interop.Word.ApplicationClass

    在项目中希望导出excel,数据一般是20W到40w ,开始的时候用的是com组件:Microsoft.Office.Interop.Word.ApplicationClass 类(com组件不是很明白)在服务器上生成excel文件。

    服务器上要装Office2007引用 Microsoft Office 12.0 Object Library 和 Microsoft Word12.0 Object Library 如果你是安装的office2003 引用的Microsoft Office 11.0;Microsoft Word 11.0 Object Library 就有可能报错:“因为配置类型不正确,系统无法开始服务器进程。请检查用户名和密码。”
    这时需要

    1.我已经将DCOM配置中的Microsoft word文档的属性中身份验证级别设为无;加入了应有的用户权限(SYSTEM;INTERACTIVE;Everyone;Administrators;IUSR_<machinename>;IWAM_<machinename>);运行该程序的帐户也选择了交互式用户
    2.文件夹的权限也都是读写都可以
    如下操作:

    1:在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务”
    2:依次双击”组件服务”->”计算机”->”我的电脑”->”DCOM配置”
    3:在”DCOM配置”中找到”Microsoft Excel 应用程序”,在它上面点击右键,然后点击”属性”,弹出”Microsoft Excel 应
    用程序属性”对话框
    特别注意: 在win2008 64位系统中, 默认是看不到 “Microsoft Excel 应用程序” 这一项的,需要先在 “开始”->”运行”
    里输入 “mmc -32″ (不要引号) 回车,在弹出的窗口中,
    a.在第一个菜单(File)中选择 “添加/删除组件(Add/Remove Snap)”
    b.添加”组件服务(Component Services)
    c.然后可以在 组件服务(Component Services)下找到 “Microsoft Excel 应用程序” 项
    d.此后的操作同 32位操作系统
    4:点击”标识”标签,选择”交互式用户”
    5:点击”安全”标签,在”启动和激活权限”上点击”自定义”,然后点击对应的”编辑”按钮,在弹出的”安全性”对话框中填加
    一个”NETWORK SERVICE”用户(注意要选择本计算机名),并给它赋予”本地启动”和”本地激活”权限.
    6:依然是”安全”标签,在”访问权限”上点击”自定义”,然后点击”编辑”,在弹出的”安全性”对话框中也填加一个”NETWORK
    SERVICE”用户,然后赋予”本地访问”权限.
    这样,我们便配置好了相应的Excel的DCOM权限.
    注意:这是在WIN2003上配置的,在2000,xp上,是配置ASPNET用户
    一般通过以上步骤就能解决问题,当然如果您的问题还没解决,可以参考以下资料:
    1) 查看你的Web.config 中是否有 <identity impersonate=”true”/> 这一项,如果有,请删除
    这段话的目的是为每一个请求进行客户端模拟,按照提示信息中的解释,由于没有设置Username,
    所以当前执行的用户是IUSR_MACHINENAME,而该用户是没有操作Excel组件的权限
    如果您需要添加指定用户的权限,你可以
    <identity impersonate=”true”  userName=”登录名”  password=”密码 “/>
    2)如果交互式用户设置后出现错误8000401a,可取消交互式用户,指定为administratr,可暂时解决此问题。
    注意:采用以上设置后,打开Excel可能会出现“无法使用对象引用或链接”,并且不能进行单元格粘贴。
    原因不明,取消设置后即可消失。
    3)如果同时存在多个Office版本,请确认下默认打开Excel的版本是哪个,如果有误则可以采用如下方法重新注册
    开始 -> 运行 -> 输入excel2003(2007类似)的安装路径,
    例如 “C:Program FilesMicrosoft OfficeOFFICE11excel.exe” /regserver
    注意/符号前面有一个空格,其中”C:Program FilesMicrosoft OfficeOFFICE11excel.exe”
    是excel2003的安装程序的路径,参数regserver表示注册的意思
    4)如果出现”不能设置类PageSetup的Orientation属性”的错误,检查下服务器上是否安装了打印机,如果没有
    请安装一个(可以是虚拟打印机,本地)
    5)对于64位系统如果还有问题,尝试下
    在 C:WindowsSysWOW64configsystemprofile下创建Desktop文件夹
    然后提升应用池权限试试.

  • 相关阅读:
    thymeleaf 模板引擎
    thymeleaf 内联语法
    thymeleaf 局部变量、属性优先级、注释
    PYNQ上手笔记 | ① 启动Pynq
    MSP430F5529时钟系统深究
    C#上位机开发(四)—— SerialAssistant功能完善
    C#上位机开发(三)—— 构建SerialAssistant雏形
    C#上位机开发(二)—— Hello,World
    C#上位机开发(一)—— 了解上位机
    FPGA学习笔记(八)—— 状态机设计实例之独立按键消抖
  • 原文地址:https://www.cnblogs.com/liuhongliang1234/p/3405364.html
Copyright © 2011-2022 走看看