## **实现多人同时编辑一份文档**
### **1. 功能介绍**
使用程序控制不同用户打开文件后,只能编辑Word文档中属于自己的区域。用此方法开发的话,支持多个人同时打开一个文件编辑各自的区域而互不影响的。
### **2. 如何实现多人同时编辑一份文档**
在Word文档(比如说:123.doc)中预先设置好多个数据区域(“PO_”开头的书签),当以表单模式(WebOpen方法的第二个参数使用docSubmitForm)打开Word文件时,只有设置了Editing属性等于true的数据区域可以编辑,其他的位置都是只读的。当多人同时在线打开同一个文件的时候,可以根据登录用户的不同,用程序设置不同的数据区域可以编辑,比如文档中有两个数据区域PO_A、PO_B,当A用户登录系统编辑文件的时候只有数据区域PO_A的位置是可以编辑的,当B用户登录系统编辑文件的时候只有PO_B的位置是可以编辑的,这样就可以实现两个用户同时编辑一份文档,同理多个用户也可以使用这种方式,并且可以给不同的用户分配不同数量的编辑区域,就是说,可能A用户登录系统后可以编辑的数据区域可能不只是PO_A,还可以有PO_A2、PO_A3……,根据需求可以灵活处理。
上面的方法只是实现了文件的多人在线同时编辑,还需要处理保存文件时,文件内容的同步问题,解决这个问题需要使用“把数据区域中的内容提取出来,保存为一个子Word文档”的功能。PageOffice的企业版可以支持把每个数据区域中的内容保存成一个单独的word文档,也就是拆分word文件,那么在每个用户保存word文档时,只把当前用户所属数据区域中的内容保存成子文档,比如说A用户保存时,只是把数据区域PO_A中的内容保存成一个单独的word文件:a.doc;B用户保存时,只是把数据区域PO_B中的内容保存成一个单独的word文件:b.doc,这样的话,主文档123.doc无需保存,这样一来就不会出现多人编辑的文件保存时互相覆盖的问题。
最后,实现同步其他用户编辑的文件内容。当A用户编辑一段时间后,需要知道其他用户(比如说:B用户)的编辑情况,那么就需要先执行保存,把自己编辑的内容保存后,刷新,再次打开文档123.doc,利用PageOffice可以在数据区域插入其他word文档的功能,通过程序自动把a.doc、b.doc等其他用户保存过的内容重新插入到主文档123.doc中,查看这份重新生成的新文档。
- 序言
- 产品简介
- PageOffice试用版和和正式版的区别
- PageOffice对客户端的要求
- PageOffice客户端安装步骤
- PageOffice常用功能与工作原理
- OA系统中的文档在线编辑及流转
- 痕迹保留、键盘批注、手写批注
- 文件并发控制功能
- 与数据库的关系
- SaveDataPage和SaveFilePage的区别
- 调用ZoomSeal签章系统中的印章
- 使用RunMacro运行Office的宏
- 为什么采用弹窗方式打开文件
- POBrowser弹窗方式的具体使用
- Word篇
- 常用接口对象
- WordDocument类
- DataRegion类
- DataTag类
- Paragraph类
- Shape类
- Table类
- Column类
- Row类
- Cell类
- WaterMark类
- DataRegion与DataTag的区别
- 编辑模板中的数据区域
- 动态填充Word文档
- 动态插入Word表格
- 动态创建数据区域
- 数据区域点击事件
- 实现Word文档编辑区域控制
- Word文档全文检索
- Word文件版本对比功能
- 实现用户自定义Word模板
- 实现多个Word文件合并
- Excel篇
- 常用接口对象
- Workbook类
- Sheet类
- Table类
- Cell类
- 动态填充Excel文档
- Excel指定单元格点击事件
- 实现用户自定义Excel模板
- 读取Excel文档中的数据
- 隐藏Excel的行号列标
- Java篇
- PageOffice集成说明
- 动态生成Word文件
- 给Word中的Table赋值
- 动态生成Excel文件
- Maven项目中引用PageOffice
- FileMaker组件功能简介
- ASP.NET篇
- PageOffice集成说明
- 给Word中的Table赋值
- 动态生成Word文档
- FileMaker组件功能简介
- 其他
- POPDF组件功能简介
- PPT相关功能简介
- 实现多人同时编辑一份文档
- PageOffice与Apache POI的区别
- 如何录制宏和编辑宏
- PDF篇
- PDF盖章