如何以编程的方式打开包含对其他数据源的链接的Excel工作簿,而不显示“工作簿包含对其他数据源的链接”的消息?

8 浏览
0 Comments

如何以编程的方式打开包含对其他数据源的链接的Excel工作簿,而不显示“工作簿包含对其他数据源的链接”的消息?

我想通过程序方式打开一个或多个Excel工作簿。当我打开工作簿时,会弹出一个问题:“工作簿包含对其他数据源的链接。”我不想点击“不更新”按钮。

你如何让这个消息框消失?这样功能就不会中断了。更新是不必要的。

enter image description here

0
0 Comments

问题的原因是使用Excel interop库打开工作簿时会出现警告对话框,这是出于安全考虑的。解决方法是将Excel文件视为数据库来处理,使用OleDbConnection连接到Excel文件,并通过查询来操作数据,而不是使用Excel interop库。

首先,需要使用以下代码创建OleDbConnection对象来连接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变量背后的数据,然后像操作其他数据库一样编写查询语句来操作数据。

需要注意的是,使用这种方法无法使用Excel interop库提供的更丰富的功能,比如格式化。

需要注意的是,这个解决方法可能不适用于所有情况,如果不适用,请让我知道。

0
0 Comments

问题的出现原因是Excel工作簿包含对其他数据源的链接。这可能是因为在工作簿中使用了外部数据源,例如其他工作簿或数据库。

解决方法是在工作簿的打开事件处理程序中添加以下代码:Application.AskToUpdateLinks = False。这样可以禁止Excel在打开工作簿时询问是否更新链接。

这是最佳的解决方法,特别适用于不使用OleDbConnection的情况。通过禁止更新链接,Excel将不再显示“工作簿包含对其他数据源的链接”的消息。

希望这个解决方法对你有帮助!

0