最近在web项目中做了一个导出Excel功能。在导出的时候报错:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败。

一般情况下,不能正确导出excel的原因有三个: 1、用户权限不够; 2、应用程序池没有配置正确; 3、导出后是在服务器还是客户端没有搞清楚。

对于上面提到的报错,属于用户权限不够,所以需要设置用户相应的权限。 很多网友提出解决方案:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务",然后一步一步的找到Microsoft Excel,然后对该项进行设置,然后在64位机上找不到Excel应用程序。

由于dcomcnfg是32位配置,在64位系统下能够完全被支持。所以只需要找到打开32位的dcomcnfg的方式就可以解决找不到的问题了: 1.运行:mmc -32; 2.打开“文件”-“添加或删除管理单元”-选择组件服务-点击添加-确定; 3.可以在DCOM组件中找到Microsoft Excel Application了。

找到后,对Microsoft Excel进行设置: 1.右击选择属性,点击"标识"标签,选择"交互式用户"; 2.点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限; 3.依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限。 参考:http://jb51.net/os/windows/win2008/73326.html

用户有了权限,还需要对应用程序池正确配置,不然仍然有可能导出不成功。 打开iis,然后打开应用程序池的高级设置,点击进程模式,将网站的AppPool标识设置为NetworkService;打开常规,设置启动32位应用程序为true。对IIS进行这两步设置,应该就够了。 如果仍然不能导出成功,你就该考虑第三种情况了:你在客户端可能将文件导出到了服务器。解决方案也比较简单,换一种思路呗。大家可以参考下面这篇文章,里面有各种导出Excel的方案: 参考:http://jb51.net/article/34091.htm

这里再次导出的时候,由于会有服务器到客户端的数据传输,还会遇到显示格式的问题,我这里就不做详细说明了,提供给大家一个链接,如果遇到此问题的话,可以做个参考: 参考:http://jb51.net/article/34092.htm

另外,如果你想给导出的Excel文件起个中文名字,您还会遇到编码解码问题,这个就不提供链接了,网上关于编码的问题多的是,大家自己看着解决吧。 本文主要分析了导出Excel的各种原因,以及给出了简要的解决思路。如果大家还有跟好的解决方法,欢迎指正。 详细出处参考:http://www.jb51.net/os/windows/73325.html

64位系统web项目导出excel问题分析及解决方法汇总的更多相关文章

  1. 关于64位 MS SQL 导入导出 Oracle 引发 ORA-06413 的解决方法

    如果在X64系统下我们想利用 MS SQL 的DTS导入导出 Oracle 数据,由 oracle 不支持路径中包含")",会引发 ORA-06413:连接未打开错误 解决的办法很 ...

  2. 64位系统 IIS不支持 Excel导入的问题

    64位系统不支持读取excel的问题: 应用程序池-常规选项 启用32应用程序 启用23应用程序是为了保证32应用程序能够正常运行

  3. SQL Server 导出Excel有换行的解决方法

    参考地址::https://vcoo.cc/blog/1234/ 从 SQL Server 查询结果中复制结果数据粘贴到 Excel 中存在这么个问题:如果字段内容中有换行符,那么粘贴到 Excel ...

  4. 关于32位程序在Win7&64位系统中连接Microsoft Excel数据源的问题

    最近在新公司电脑上跑以前的selenium测试框架的时候,抛出了如下的错误 出现的是ODBC Driver问题:[Microsoft][ODBC Driver Manager] Data source ...

  5. windows 2008 R2 64位系统,找到Microsoft Excel 应用程序

    在windows  2003 操作系统中, 1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务", 2.依次双击& ...

  6. 解决SQL Server 2008 64位系统无法导入Access/Excel的问题 2012/08/01

    操作系统Windows Server 2008 X64,数据库SQL Server 2008 X64,Office 2007(好像只有32位),在存储过程执行OpenDatasource导入Acces ...

  7. 终于解决SQL Server 2008 64位系统无法导入Access/Excel的问题 2012/08/01

    最近更换了新服务器,操作系统Windows Server 2008 X64,数据库SQL Server 2008 X64,Office 2007(好像只有32位),在存储过程执行OpenDatasou ...

  8. 解决SQL Server 2008 64位系统无法导入Access/Excel的问题

    最近更换了新服务器,操作系统Windows Server 2008 X64,数据库SQL Server 2008 X64,Office 2007(好像只有32位),在存储过程执行OpenDatasou ...

  9. office在繁体系统下 导入导出 功能灰显的解决方法

    当在win7系统使用繁体中文版的office时,或系统是繁体版时,可能会导致office的导入导出功能无法使用 解决方法: 控制面板--区域和语言--格式--中文简体

随机推荐

  1. tf.squared_difference

    tf.squared_difference squared_difference( x, y, name=None ) 功能说明: 计算张量 x.y 对应元素差平方 参数列表: 参数名 必选 类型 说 ...

  2. 3. 文本相似度计算-DSSM算法

    1. 文本相似度计算-文本向量化 2. 文本相似度计算-距离的度量 3. 文本相似度计算-DSSM算法 4. 文本相似度计算-CNN-DSSM算法 1. 前言 最近在学习文本相似度的计算,前面两篇文章 ...

  3. 基于jQuery图片元素网格布局插件

    基于jQuery图片元素网格布局插件是一款可以将图片或HTML元素均匀分布排列为网格布局的jQuery插件jMosaic.效果图如下: 在线预览   源码下载 实现的代码. html代码: <c ...

  4. WebApi增删改查Demo

    1.新建webapi项目 2.配置WebApiConfig public const string DEFAULT_ROUTE_NAME = "MyDefaultRoute"; p ...

  5. redis的setbit命令

    redis的setbit这个bit怎么理解,配合bitcount使用? 这个是SETBIT使用方法的简单说明&lt;img src="https://pic4.zhimg.com/8 ...

  6. SpringMVC REST 风格静态资源访问配置

    1 在web.xml中使用默认servlet处理静态资源,缺点是如果静态资源过多,则配置量会比较大,一旦有遗漏,则会造成资源无法正常显示或404错误. <!-- 静态资源访问控制 --> ...

  7. CPP_类默认函数:构造函数,拷贝构造函数,赋值函数和析构函数

    类默认函数:构造函数,拷贝构造函数,赋值函数和析构函数 // person.h #ifndef _PERSON_H_ #define _PERSON_H_ class Person{ public : ...

  8. Redis键

    Redis的keys命令用于管理键.使用Redis的keys命令语法如下所示: 语法 redis 127.0.0.1:6379> COMMAND KEY_NAME 例子 redis 127.0. ...

  9. ajax 多个参数问题,如何既能表单序列化获取,又能加参数,加全部代码

      $.param({'address':address,'delivity':delivity,'payment':payment}) + '&' + $('#card_form').ser ...

  10. "No user exists for uid 501"

    "No user exists for uid 501"   问题表现:git操作远端失败. iterm2的问题,更改了配置可能导致这个问题,最简单的解决办法,退出客户端后重启.重 ...