C#操作excel出现 80040154异常

没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)

  • 今天在写web需要一个功能,要将数据库的数据导出到excel中,

    先加入命令空间

       using Microsoft.Office.Interop;
       using Excel = Microsoft.Office.Interop.Excel;
    
    
       public void excel(datatable dt)
       {
          object missing=System.Reflection.Missing.Value;
      		Excel.Application app = new Excel.ApplicationClass();
          // 这一步每次都报错
          app.Application.Workbooks.Add(true);
          Excel.Workbook book =(Excel.Workbook)app.ActiveWorkbook;
          Excel.Worksheet sheet = (Excel.Worksheet)book.ActiveSheet;
       }
    
  • 每次在Excel.Application app = new Excel.ApplicationClass(); 都会出错

    PS: 异常信息:没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)

  • 刚开始在谷歌百度,都没有找到最终的解决方案,今天我将解决方案弄出来,大家可以借鉴写,如果有更好的方法,也希望你能和我分享。
    > 网上有些是80070005错误的,跟我这个80040154的错误不一样0070005错误错误是没有权限

    80040145错误是没有注册类别,所以需要MSOWC.dll文件,把MSOWC.dll文件放到C:\WINDOWS\system目录下,然后运行regsvr32 C:WINDOWS\system32\MSOWC.dll即可

    如果还是不行,那就卸载掉相关软件重新安装。