很多人在開發環境下使用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