我收到错误:
Excel 无法打开文件“FILE.xlsx”,因为文件格式或文件扩展名无效。验证文件没有损坏并且文件扩展名与文件格式匹配。
我怀疑原因是因为在 File.xlsx 上我有一个 OleDBConnection 使用它,并且稍后在同一代码中我在该文件上调用 Excel 的互操作函数 Open。有人可以证实我的理论吗?
public ExcelWorkbook(string file)
{
fileName = file;
using (var workbookConnection = new OleDbConnection(String.Format(Resource.ExcelConnectionString, file)))
{
workbookConnection.Open();
tabNames = GetDataTabsName(workbookConnection);
foreach (string tabName in tabNames)
{
var newExcelTab = new ExcelTab(workbookConnection, file, tabName);
excelTabs.Add(tabName, newExcelTab);
}
}
}
然后我的函数 GetDataTabsName(workbookConnection);
private List<string> GetDataTabsName(OleDbConnection workbookConnection)
{
var tabsName = new List<string>();
var tabName = "";
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = false;
Excel.Workbook workbook = excelApp.Workbooks.Open(workbookConnection.DataSource, 0, false, 5, "", "", false,
Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
....some more code
Open 在这里失败了……我最好的猜测是因为该文件上存在 OleDBConnection ?