操作失败,由于库未注册,对带有 IID 的接口的 COM 组件的 QueryInterface 调用失败

Mar*_*ino 5 c# excel

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;

namespace GridComplete
{
    public partial class Form1 : Form
    {
        private static Excel.Workbook MyBook;
        private static Excel.Application MyApp;
        private static Excel.Worksheet MySheet;

        private void bRun_Click(object sender, EventArgs e)
        {
            MyApp = new Excel.Application();
            MyApp.Visible = false;
            MyBook = MyApp.Workbooks.Open(tbFile1);
            MySheet = (Excel.Worksheet)MyBook.Sheets[1];

        }

    }
}
Run Code Online (Sandbox Code Playgroud)

在将 MyApp.Visible 设置为 false 的行中,我收到以下未处理的异常:

GridComplete.exe 中发生类型为“System.InvalidCastException”的未处理异常

其他信息:无法将类型“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败,因为对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件上的 QueryInterface 调用由于以下错误而失败:库未注册。(HRESULT 异常:0x8002801D (TYPE_E_LIBNOTREGISTERED))。

** 我似乎不明白发生了什么。我尝试从注册表中删除密钥并重新运行。那行不通。我还完全卸载了 Microsoft Office,然后重新安装。我不知道还能做什么来解决这个问题。

ruf*_*nov 2

您运行该代码的计算机上可能没有安装指定版本的 Microsoft Excel。或者是安装坏了。尝试重新安装Office