SAL

  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

  很多人在开发环境下使用Microsoft.Office.Interop.Word或Microsoft.Office.Interop.Excel进行编程,并成功运行,部署到IIS或网站服务器上通常会收到这个错误:

"检索 COM 类工厂中CLSID为 {00024500-0000-0000-C000-000000000046}   的组件时失败,原因是出现以下错误:   8000401a"

或“检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。”

  此时,只能在服务器上安装Office,并配置DCOM权限,步骤见:http://www.cnblogs.com/downmoon/archive/2009/01/16/1376702.html

  相当麻烦,而且服务器上安装Office本身就显得很另类,如果是托管或租用的服务器,更雪上加霜。

  其实,我以前也犯过类似的错误,后来,发现很多人还在跟我一样走老路,于是写下此文,以避免其他初学者走弯路。

  合理的解决方案是采用第三方的独立组件,这样做的好处是与服务器的配置无关。

 

     Word相关:

  1、Aspose.Word,这是一个组件集合中的一个,是商业软件,支持.Net(C#/VB.net)和Java

  官方站点:http://www.aspose.com/categories/product-family-packs/aspose.total-product-family/default.aspx

     2、OfficeWriter,这也是一个商业软件。

  官方站点:http://www.officewriter.com/

  谁发现有免费的开源组件,请通知我一声,感谢!当然,这个主要是针对Office 2003以下版本,Offcie 2007开始已采用Xml格式取代二进制格式存储数据。

  

  Excel相关:

  1、NPOI,开源、免费的强大Excel组件。

  官方网站:http://npoi.codeplex.com/

       http://www.cnblogs.com/tonyqus/archive/2009/03/16/1409966.html

  应用示例:http://www.cnblogs.com/downmoon/archive/2011/04/16/2017603.html

  2、MyXls,开源、免费的强大Excel组件。

  官方网站:http://sourceforge.net/projects/myxls/files/MyXls/

   应用示例:http://www.cnblogs.com/downmoon/archive/2011/05/30/2063258.html