如何读取 Excel Marco (.xlsm) 文件

Jiale Xue - MSFT 49,051 信誉分 Microsoft External Staff
2024-04-05T06:25:12.64+00:00

大家好

我有如下代码来读取 Excel 宏 (.xlsm) 文件;

Microsoft.Office.Interop.Excel.Application objExcel = new Microsoft.Office.Interop.Excel.Application();
            object missing = Type.Missing;
            Microsoft.Office.Interop.Excel.Workbook wk = objExcel.Workbooks.Open(@"'" + Path.GetDirectoryName(label1.Text) + "'", missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
            objExcel.Visible = true;
            Microsoft.Office.Interop.Excel.Worksheet ws = wk.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet;

但是我在下面得到了例外

ExcelToPPT_DEV.exe中发生“System.Runtime.InteropServices.COMException”类型的未处理异常

其他信息:很抱歉,我们无法找到“D:\New Dev Excel to PPT”.xlsx。它有可能被移动、重命名或删除吗?

文件名为 test.xlsm。但它找不到文件。

Note:此问题总结整理于: How to read Excel Marco (.xlsm) file

C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
205 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 48,626 信誉分 Microsoft External Staff
    2024-04-05T08:07:05.7+00:00

    当我使用固定路径时,代码没有问题。 根据错误消息,问题出在错误的路径上。 Path.GetDirectoryName 方法用于获取指定文件所在的文件夹。 如果标签。文本为“d:\test\test.xlsm”,那么这个方法的结果就是“d:\test”,以后需要添加一个特定的文件名。 另外,请不要在开头和结尾添加单引号,这将产生无效的路径。


    如果回复有帮助,请点击“接受答案”并点赞。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。