目前这个项目是一个web应用程序,现在需要在服务器端动态生成一个excel文件,提供给客户下载。我的开发环境是中文win2000,Microsoft Visual Studio 2005,安装的office是D版的2003。在.net中引用Microsoft Excle 11.0 Object Library。
    使用以下代码在服务器端创建excel对象
    Microsoft.Office.Excel.Application oXL = new Microsoft.Office.Excel.Application();
    客户的机器环境是英文的win server 2003,英文的office2003,均使用的是正版软件。
    现在碰到的问题是,在客户机器上创建EXCEL对象时,会报错:
    Retrieving the COM class factory for component with CLSID {00024500-000-000-C000-000000000046}failed due to the followint error:8000401a
    我在网上查过了,8000401a是权限问题,可是我在“DCOM 配置”中设置了相应的权限,依然还是存在这样的问题。于是查看客户机器上的Microsoft EXCEL的CLSID,发现与我本机上的Microsoft EXCEL的CLSID不同!客户机器上的是{00020812-0000-0000-C000-000000000046},而我机器上的是{00024500-000-000-C000-000000000046}。为什么同样的EXCEL,却有多个CLSID呢?象这样的情况我该如何处理?
    ps:我也想尝试通过安装客户的office来重新引用,可他们只有安装程序,没有序列号,5555555~~~~~,或者哪位的EXCEL的CLSID是{00020812-0000-0000-C000-000000000046}的,提供一个给我下载也可以,看看是不是可以通过重新引用新的dll来解决问题。