c# - 操作失败,对具有 IID 的接口(interface)的 COM 组件上的 QueryInterface 调用失败,因为库未注册

标签 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];

        }

    }
}

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

GridComplete.exe 中出现“System.InvalidCastException”类型的未处理异常

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

** 我似乎无法弄清楚发生了什么。我试图从注册表中删除 key 并重新运行。那没有用。我还完全卸载了 Microsoft Office,然后重新安装。我不确定还可以做什么来解决这个问题。

最佳答案

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

关于c# - 操作失败,对具有 IID 的接口(interface)的 COM 组件上的 QueryInterface 调用失败,因为库未注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25437870/

相关文章:

斜杠文件名之间单词的VBA

excel - 添加切片器缓存期间的奇怪错误

c# - 在 ASP.NET 的一对多关系中,外键为 NULL。如何将其添加到 Controller 中?

C# 嵌套类访问父成员

c# - c# 中多播委托(delegate)中的执行顺序

java - 如何在java中计算格式化字符串如 '1,000,000*2'

javascript - Visual Studio 2012 中的 '/' 应用程序中的 ASP.NET 服务器错误

c# - 如何在 C# 中附加声音

python - 在xlsxwriter中定义系列时出现TypeError 'buffer size mismatch'错误

excel - 使用 Replace 仅替换字符串的一小部分