COM Exception 80040154 When creating an Excel Application

14,747

Solution 1

The Office Interop assemblies are runtime-callable wrappers (RCW) that allow you to interoperate with a copy of Office that's installed on the system via the COM API that it exposes.

The error message indicates that Excel isn't installed, exactly what I'd expect. You can't use the Interop assemblies on a machine without Office.

Solution 2

I'm trying to run my application on a server which does not and will not have Office installed on it.

As Joe said, you'll need to install Excel for Interop to work. If you're dead-set against that, consider third-party alternatives. In general, Microsoft does not recommend installing Office on your server and using it with Interop - that being said, it will work (at least most of the time).

Share:
14,747
Bizhan
Author by

Bizhan

Apparently, this user does not prefer to keep an air of mystery about them. Or do they?

Updated on June 04, 2022

Comments

  • Bizhan
    Bizhan almost 2 years

    I'm trying to run my application on a server which does not and will not have Office installed on it.

    using EXCEL = Microsoft.Office.Interop.Excel;
    ...
    EXCEL.Application app = new EXCEL.Application();//Exception thrown here
    

    The code is working fine on my own system, but on the server it gives the following exception:

    Unhandled Exception: System.Runtime.InteropServices.COMException: 
    Retrieving the COM class factory for component with CLSID {...} failed
    due to the following error: 80040154 Class not registered
    (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
    

    both systems are 32bits, and I've copied the excel Interop dll next to application's exe. I've also installed O2010PIA.

    any lead?