解决C#调用Excel接口时报错,提示:Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Offi

解决C#调用Excel接口时报错,提示:Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}

有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。

************** 异常文本 **************
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))。

1.运行 "regedit"命令,打开注册表
2.在注册表地址栏输入:
计算机\HKEY_CLASSES_ROOT\TypeLib
定位到 {00020813-0000-0000-C000-000000000046}这个文件夹
3.删除{00020813-0000-0000-C000-000000000046}其下的1.9文件夹(笔者电脑是Office 2013,1.8和1.9文件夹同时共存,删除较高版本)
4.再次启动程序ok

在这里插入图片描述

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 使用C#Microsoft.Office.Interop.Excel库可以方便地读取和操作Excel文件。下面是一个示例代码,展示如何打开Excel文件并将其内容加载到DataGridView: ```csharp using System; using System.Windows.Forms; using Microsoft.Office.Interop.Excel; namespace ExcelToDataGridView { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // 创建Excel应用程序对象 Application excelApp = new Application(); // 打开Excel文件 Workbook workbook = excelApp.Workbooks.Open(@"D:\test.xlsx"); // 获取第一个工作表 Worksheet worksheet = (Worksheet)workbook.Sheets[1]; // 获取工作表中使用的范围 Range range = worksheet.UsedRange; // 将Excel数据加载到DataGridView中 object[,] values = range.Value; for (int row = 1; row <= values.GetLength(0); row++) { dataGridView1.Rows.Add(); for (int col = 1; col <= values.GetLength(1); col++) { dataGridView1.Rows[row - 1].Cells[col - 1].Value = values[row, col]; } } // 关闭Excel文件和应用程序对象 workbook.Close(); excelApp.Quit(); } } } ``` 在上述代码中,我们首先创建了一个Excel应用程序对象,然后使用`Open`方法打开指定的Excel文件。接着,我们获取Excel文件中第一个工作表,并使用`UsedRange`属性获取工作表中实际使用的范围。最后,我们将Excel数据加载到DataGridView中,关闭Excel文件和应用程序对象。 ### 回答2: C是一种广泛使用的计算机编程语言,它的设计目标是能够提供高效、可移植、可编译的代码。C语言具有简洁、高效的特点,这使得它被广泛用于系统软件开发、嵌入式系统和设备驱动程序的编写。 C语言是由美国贝尔实验室的Dennis Ritchie开发的,于1972年首次发布。C语言在之后几年中迅速发展并得到了广泛应用,尤其是在UNIX操作系统的开发中。C语言的成功主要归功于其简洁的语法和强大的功能。 C语言的语法规范简单明了,易于理解和学习。它包含了基本的数据类型(如整数、浮点数、字符等)和控制结构(如循环、条件判断等),可以方便地表达各种算法和逻辑。C语言还提供了丰富的标准库函数,这使得开发者不需要从底层开始编写所有的功能,而是能够直接调用已有的函数进行开发。这也是C语言能够快速编写出高效程序的重要原因之一。 C语言的可移植性也是其受欢迎的重要原因之一。由于C语言的底层特性相对较少,很多操作系统和硬件平台都提供了C语言的编译器和解释器。这意味着用C语言编写的程序可以在各种平台上运行,而不需要做太多的修改。这种可移植性使得C语言成为了开发跨平台软件的重要工具。 总而言之,C语言是一种简洁、高效、可移植的计算机编程语言。它的设计目标是提供一种能够编写高效、可移植代码的工具。C语言的成功在很大程度上归功于其简洁的语法、丰富的标准库函数以及强大的可移植性。因此,C语言广泛应用于系统软件和嵌入式系统的开发,为计算机行业做出了重要的贡献。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值