C# Excel文件-已由其他用户以独占方式打开,
我正在使用C#读取excel文件,下面的代码按预期工作,但每次运行应用程序时,我都必须关闭excel文件,否则会收到以下错误消息:C# Excel文件-已由其他用户以独占方式打开,,c#,excel,excel-2007,oledbconnection,oledbdataadapter,C#,Excel,Excel 2007,Oledbconnection,Oledbdataadapter,我正在使用C#读取excel文件,下面的代码按预期工作,但每次运行应用程序时,我都必须关闭excel文件,否则会收到以下错误消息: Microsoft Access数据库引擎无法打开或写入文件“”。它已被其他用户独占打开,或者您需要查看和写入其数据的权限。 我的问题是:有没有一种方法可以在我完成阅读后关闭excel文件 public static DataTable LoadExcelWorkbook(string workbookName) { Ole
Microsoft Access数据库引擎无法打开或写入文件“”。它已被其他用户独占打开,或者您需要查看和写入其数据的权限。
我的问题是:有没有一种方法可以在我完成阅读后关闭excel文件
public static DataTable LoadExcelWorkbook(string workbookName)
{
OleDbConnection connection;
string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", EXCELFILENAME);
string query = String.Format("select * from [{0}$]", workbookName);
using(OleDbConnection conn = new OleDbConnection(connectionString))
{
connection = new OleDbConnection(connectionString);
connection.Open();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
DataTable myTable = dataSet.Tables[0];
dataAdapter.Dispose();
connection.Close();
dataSet.Dispose();
//CLOSE THE EXCEL FILE?????????
if (myTable != null)
return myTable;
return null;
}
}
使用sheet1名称而不是工作簿名称尝试本文中建议的解决方案