Excel 文件 - 它已被其他用户以独占方式打开,

Posted

技术标签:

【中文标题】Excel 文件 - 它已被其他用户以独占方式打开,【英文标题】:Excel file - It is already opened exclusively by another user, 【发布时间】:2012-09-25 23:05:56 【问题描述】:

我正在使用 C# 读取 excel 文件,下面是按预期工作的代码,除了每次运行应用程序时,我都必须关闭 excel 文件,否则我会收到以下错误消息:

The Microsoft Access database engine cannot open or write to the file ''. It is already opened exclusively by another user, or you need permission to view and write its data..

我的问题是:有没有办法在我读完后关闭 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; 
             
        

【问题讨论】:

尝试这篇文章中建议的解决方案***.com/questions/8710510/… 【参考方案1】:

使用 sheet1 名称代替工作簿名称

【讨论】:

以上是关于Excel 文件 - 它已被其他用户以独占方式打开,的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET OleDB 权限错误

它已经被别的用户以独占方式打开,或没有查看数据的权限。

用于读取由其他用户独占打开的 Excel 文件的 OleDB 连接字符串

通过 c# 连接访问

IE错误“Java(TM) 已被阻止,因为它已过时并且需要更新。”的解决方法

如何以独占的方式打开串口