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/