如何以编程的方式打开包含对其他数据源的链接的Excel工作簿,而不显示“工作簿包含对其他数据源的链接”的消息?
问题的原因是使用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库提供的更丰富的功能,比如格式化。
需要注意的是,这个解决方法可能不适用于所有情况,如果不适用,请让我知道。