【问题标题】:How to open Excel-workbooks without the message The workbook contains links to other data sources. programmatically?如何在没有消息的情况下打开 Excel 工作簿工作簿包含指向其他数据源的链接。以编程方式?
【发布时间】:2017-11-06 09:52:33
【问题描述】:

我想以编程方式打开 1 个或多个 Excel 工作簿。当我打开工作簿时,您会收到一个问题:工作簿包含指向其他数据源的链接。而且我不想按“不更新” p>

你怎么能留下这个消息框?所以功能不会再中断。不需要更新。

【问题讨论】:

  • 您说您正在以编程方式打开工作簿。您在使用 Microsoft Office 互操作库吗?如果是这样,你应该用它来标记你的问题。
  • 如果这是使用 Microsoft Interop,可能重复:stackoverflow.com/questions/5575117/…

标签: c# excel office-interop


【解决方案1】:

尝试在工作簿中放置 Open 事件处理程序:

Application.AskToUpdateLinks = False

【讨论】:

  • 这在我的情况下看起来是最好的答案,因为我不使用 OleDbConnection。
【解决方案2】:

我认为您无法使用 excel 互操作库绕过对话框(出现警告是有原因的)。我过去一直这样做的方式是将 Excel 文件视为数据库,并使用以下内容:

OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFileName + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"");

然后您可以使用以下方法获取有关工作表的信息:

DataTable lookupSheets = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

然后使用调试器了解 lookupSheets 变量背后的内容,并开始编写查询,就像使用任何其他数据库一样。

注意:您不能使用互操作库中更丰富的元素,例如格式化

【讨论】:

  • 此答案可能不适用于您的情况。如果没有,请告诉我。
猜你喜欢
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-08
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
相关资源
最近更新 更多