多用户环境/Excel 文件问题

多用户环境/Excel 文件问题

我们的网络上有一个 Excel 文件,通常一个人保持打开状态并对其进行更改。其他用户保持打开状态,以只读模式。

有时,除了第一个负责编辑 Excel 文件的人之外的其他人会打开该文件并以某种方式接管该文件的写入功能,导致应该进行编辑的人无法保存这些更改。

这种情况已经发生了很长一段时间,我似乎找不到解决办法。

知道发生什么事了吗?

Office 2010
Windows 7 专业版 x64

答案1

这是一个可能的修复方法:从“另存为”对话框中,选择“工具” –>“常规选项”,选择“建议只读”,然后保存。

    “另存为”对话框     “常规选项”对话框,其中标记有“建议只读”

然后,任何人只要打开该文件,就会得到以下信息:

“以只读方式打开?”对话框

教会他们单击“是”,除了负责编辑文件的人(或其替代者,在缺席的情况下)之外。

答案2

对于下一种情况,我选择了另一种方法。有一个 Excel 数据库,假设为 DataBase.xls 和一个 Excel 模板 Programs.xlt,两者都不共享,并且驻留在网络服务器/磁盘的目录中。每个用户都使用程序模板的副本,因此第一个用户使用 Programs1.xls,第 n 个用户使用 Programsn.xls。规则是:。可以同时进行多次并发读取。在没有并发读取的情况下,只能进行 1 次写入(以避免读取“半”更新记录)。读取和写入操作是标准化的,并且尽可能简短

我选择的解决方案是裁判/仲裁员/仲裁员/仲裁员 - 我将其称为 Referee.xls。它是一个共享的 excel 文件,位于上述目录中,并且非常小:它仅包含 2 个字段 - 读取计数器 nRead 和写入计数器 nWrite。每个想要访问数据库的用户都会向裁判发送读取或写入请求。

如果有读取请求,裁判会检查/等待,直到不再有写入操作(nWrite=0),然后通过将 nRead 计数器增加 1 来授予该用户的读取权限。读取操作完成后,nRead 计数器减少 1。

如果有写入请求,裁判将检查/等待,直到没有更多写入操作处于活动状态 (nWrite=0),之后裁判将检查/等待,直到所有读取操作完成 (nRead=0),然后授予写入请求并将 nWrite 计数器设置为 1。写入操作完成后,写入计数器 nWrite 将设置为 0。之后裁判可以授予新的读取和/或写入请求。等待由 Lib“Kernel32”中的“Sleep”函数实现,步长为 1 秒(1000 毫秒)。步骤也会被计算,6 步/秒后读取请求超时,10 步/秒后写入请求超时,但这在很大程度上取决于许多因素,应该在实践中找到答案。

这一切在 Excel 2003、Windows XP 环境中运行良好,最多可同时支持 14 个用户。这些用户是分布在 5000 平方公里不同地方的经理,他们每天都使用该工具更新员工的医疗能力信息、个人信息、预约等(平均每位经理负责 15 名员工)

答案3

我认为发生这种情况的唯一方式是

  • 允许用户编辑范围选项已配置(参见功能区“审阅”->“更改”)
  • 人 1 并不总是打开该文件,或者也许如果操作系统处于待机状态,Excel 上的锁定就会被释放。

相关内容