C# 在excel共享工作簿中保存数据

C# 在excel共享工作簿中保存数据,c#,winforms,excel,saving-data,vba,C#,Winforms,Excel,Saving Data,Vba,我制作了一个业余winform,它将文本框中的数据保存到指定工作表的第一个空白行中的共享excel工作簿中。此winform存在于3台PC上,可通过dropbox访问工作簿。在我的情况下,我不能用一个共享文件夹代替dropbox,因为网络是一个巨大的+密码保护的网络,我不会知道它,所以唯一的共享文件夹替代品是dropbox之类的东西 有时用户需要打开工作簿并手动写入和保存一些数据。本例提供了额外的冲突复制文件,因为dropbox与合并2个同时更改的文件的信息不兼容 如果我能以某种方式使excel

我制作了一个业余winform,它将文本框中的数据保存到指定工作表的第一个空白行中的共享excel工作簿中。此winform存在于3台PC上,可通过dropbox访问工作簿。在我的情况下,我不能用一个共享文件夹代替dropbox,因为网络是一个巨大的+密码保护的网络,我不会知道它,所以唯一的共享文件夹替代品是dropbox之类的东西

有时用户需要打开工作簿并手动写入和保存一些数据。本例提供了额外的冲突复制文件,因为dropbox与合并2个同时更改的文件的信息不兼容

如果我能以某种方式使excel文件一次只对一个用户可用,这将使winform在任何其他PC上打开工作簿时在按钮单击时崩溃

优秀的目标是通过winform和手动输入对工作簿进行更改,并且不会通过excel获得任何冲突的更改选择,也不会在dropbox上获得冲突的复制文件


有什么想法吗?提前谢谢

老实说,我认为让用户使用共享的谷歌文档电子表格会更好,因为他们可以同时修改。您可以使用许多不同的工作表来防止混淆或数据损坏


或者,如果您确实需要使用winform,请将数据保存到sql express DB并从中加载,sql express DB是为小型多用户应用程序设计的。Winforms可以非常轻松地链接到MS sql express

您可以装配VBA,使用Environ$Username之类的内容,在基于用户名的隐藏工作表上记录工作簿的打开和关闭。但如果事情不同步,比如Excel崩溃,这可能是一场噩梦,这是很常见的。