设想:
- 不同机器上的两个客户端从共享工作簿中读取一系列单元格 (.../drive/{drive-id}/items/{id}/workbook/worksheets/{id|name}/range(address='.. .')。
- 如果他们都没有找到他们正在寻找的行,他们会尝试在表的末尾添加一个新行。
- 如果这同时发生,两个客户端可能会看到第 37 行是表的末尾,并且它们都将尝试写入第 38 行,因此其中一个新行可能会丢失或损坏。
我怀疑这是一个常见问题(可能也与 Sharepoint/Onedrive 中的其他类型的文件有关),所以我想知道 /workbook API(或 MS Graph 的其他地方?)中是否有任何标准化机制来帮助同步多个客户?
我实际上并没有试图证明上述情况是可能的,但在写入工作簿时我什至没有使用会话,而且我实际上一次写入一个单元格,所以很容易相信新的行将包含来自两个客户端的混合数据(即损坏)。我可以切换到一次写入整行,可能在一个会话中,但假设来自两个客户端的两个写入操作之一将被覆盖仍然是安全的。
我想我应该使用经典的“尝试在 xlsx 旁边创建一个 .lock 文件,如果失败,请稍候再试一次”。这是人们做的吗?或者我应该从 Excel 切换到 SQL 。
谢谢