【问题标题】:Open Excel workbook in background using interop使用互操作在后台打开 Excel 工作簿
【发布时间】: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


【解决方案1】:

我知道这是旧的,但以防万一有人仍然需要这个答案......

excelApp.Visible = false;

(excelApp 是用于 excel 应用程序的变量的名称)

【讨论】:

  • Excel.Application { Visible = false };excelApp.Visible = false;有什么区别?
  • 这只是一个叫做“对象初始化器”的快捷方式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多