【发布时间】:2014-12-01 18:18:40
【问题描述】:
我想从 Excel 工作簿中导入数据而不实际显示打开的工作簿。
我可以发誓我在以前的项目中使用了以下代码并且它有效:
var excelApp = new Excel.Application { Visible = false };
var workbook = excelApp.Workbooks.Open(filePath);
不幸的是,当工作簿打开时,它会显示给用户,这对于此应用程序来说是不必要的。
我在这个项目上使用的是 Microsoft Excel 15.0 对象库,而以前我认为它是 12 或 13 版。也许这是问题所在,或者是我的记忆力衰退并且代码不正确?
【问题讨论】:
-
“不幸的是,当工作簿打开时,它会显示给用户,这对于此应用程序来说是不必要的。”如果用户不想看到它,为什么要为用户打开 Excel?这有点像你试图欺骗用户。
-
@Aron 我向你保证我不是。我正在写一些东西来解析 Excel 工作簿中的数据。用户将为工作簿选择文件路径,我的应用程序将解析所需的数据并添加到数据库中。没有恶意活动。
-
在这种情况下,您不应该运行 Excel。请考虑使用 OpenXML。
-
你能在打开一本书后查看
excelApp.Visible的值吗?还是false吗? -
谢谢@Aron。我来看看 OpenXml。
标签: c# excel interop excel-interop