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

Posted

技术标签:

【中文标题】用于读取由其他用户独占打开的 Excel 文件的 OleDB 连接字符串【英文标题】:OleDB Connection string for reading an Excel file exclusively opened by other user 【发布时间】:2011-08-16 18:18:06 【问题描述】:

谁能告诉我 OleDB 连接字符串用于读取其他用户打开的 Excel 文件 exclusively

我尝试了以下对我不起作用的连接字符串:-

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=0;Mode=Read;Extended Properties=\"Excel 8.0;HDR=YES;ReadOnly=true;\"";

此连接字符串被其他用户打开时抛出以下异常:-

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

注意事项:

    Excel 文件保持共享,以便多个用户可以打开它。 使用的提供程序:- Microsoft.Jet.OLEDB.4.0 Excel 文件类型:- MS Excel 97-2003 工作表 不允许复制文件

【问题讨论】:

如果您只想从文件中读取,您可以先创建一个Excel文件的副本,然后使用它删除。 由于多个用户正在编辑excel,如果我们复制文件会产生问题。 是的,我试过了。第一个用户加载包含 100 条记录的复制文件。在他保存它之前,另一个用户向文件中添加了一条记录,并将该文件保存为 101 条记录。现在第一个用户更新第 100 条记录并将复制的文件保存在主文件的顶部。所以最后主文件不会有101条记录。 好吧,我说:如果你只想从文件中读取...。当然,如果你也将数据写入 Excel 文件,它就不会起作用。 那么有什么办法可以处理这种情况吗? 【参考方案1】:

我建议你使用后台线程每隔一段时间重试打开连接,当你连接到excel数据源时,将所有数据读入内存并立即关闭连接,以便其他进程可以访问该文件。

【讨论】:

以上是关于用于读取由其他用户独占打开的 Excel 文件的 OleDB 连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

试图从文本文件中读取数据 - 它已被其他用户独占打开,或者您需要权限才能查看其数据

独占打开文件/锁定文件

在 Ubuntu 下打开的 Excel 文件,由 R、OpenOffice 读取

ASP.NET OleDB 权限错误

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

js读取本地excel文件出现问题,这是咋回事