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

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的行上,出现以下未处理的exception:

在GridComplete.exe中发生未处理的types为“System.InvalidCastException”的exception

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

**我似乎无法确定发生了什么事情。 我试图从registry中删除密钥并重新运行。 这没有用。 我也完全卸载了Microsoft Office,然后重新安装。 我不知道还有什么可以解决这个问题。

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