除非文件已经打开,否则无法连接到excel文件

我试图写一个类,将从Excel文件中读取信息,但由于某种原因,它将只运行exception,如果有问题的文件在Excel中打开。 否则,该类抛出一个OleDbException。 代码如下:

String filename = @"C:\Users\me\Documents\File.xls"; string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties='Excel 8.0;HDR=YES'"; using (OleDbConnection conn = new OleDbConnection(connString)) { conn.Open(); OleDbCommand selectCommand = new OleDbCommand("select * from [Sheet1$]", conn); OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand); DataTable dt = new DataTable(); adapter.Fill(dt); int counter = 0; foreach (DataRow row in dt.Rows) { String dataA= row["DataA"].ToString(); String dataB= row["DataB"].ToString(); Console.WriteLine(DataA+ " = " + dataB); counter++; if(counter>=40) break; } 

conn.Open()引发错误,只有当我没有在Excel中同时打开File.xls时才会出现此错误。 有人可以帮我解决这个问题吗? 我对OLEDB不够精通,弄清楚为什么会发生这种情况。 谢谢!