我正在尝试打开一个 xlsx 文件,但只有当我从应用程序的某个区域打开时,我才得到外部表不是预期的格式。因此,如果我从 1 个区域调用它,它工作得很好,但是我从应用程序的不同部分执行相同的操作,调用相同的代码块,它会引发该异常。相同的代码块。同一个excel文件。
string connectionString = "Provider="+ GetProvider(fileName) +"; data source=" + fileName + "; " + GetExtendedProperties(fileName);
using (var connection = new OleDbConnection(connectionString))
{
connection.Open();
using (DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new object[] { null, null, null, "TABLE" }))
{
if (schemaTable != null && schemaTable.Rows != null)
{
List<string> validTables = schemaTable.Rows.OfType<DataRow>().Select(row => (string)row["TABLE_NAME"]).ToList();
validTables.ForEach(table =>
{
if (table.Contains('$'))
{
results.WorkSheets.Add(table.Trim('\'', '$'));
}
else
{
results.NamedRanges.Add(table);
}
});
}
}
}
我的连接字符串:
提供者=Microsoft.ACE.OLEDB.12.0;数据源=C:\moses\BLANKTest\Table.xlsx;扩展属性="Excel 12.0 Xml";
还尝试了在末尾取出“Xml”的连接字符串。没运气。
不知道这里发生了什么。