`
妮子321
  • 浏览: 79512 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java控制不同用户同时编辑Word文档中不同的区域

阅读更多

1.需求

java 实现不同用户编辑 word 文档的不同区域(https://my.oschina.net/u/3507515/blog/2413926)

这篇文章主要介绍了不同的用户编辑不同的区域.但是如果多个用户同时编辑保存文档文档的时候就会出现相互覆盖的问题, 所以 pageoffice 提供了不同用户同时编辑word 文档不同区域的方法

2:核心思想以及代码

思想: 保存的时候拆分成子文件保存(数据区域的内容作为文件提交)

代码:

	d1.setSubmitAsFile(true);
	d2.setSubmitAsFile(true);

3:具体的实现代码

因为保存的时候是作为子文件保存的.所以打开的时候需要把子文件填充到word 模板中,然后在进行编辑保存

    String userName = request.getParameter("userName");
	//***************************卓正PageOffice组件的使用********************************
	WordDocument doc = new WordDocument();
	//打开数据区域
	DataRegion d1 = doc.openDataRegion("PO_com1");
	DataRegion d2 = doc.openDataRegion("PO_com2");

	//给数据区域赋值
	d1.setValue("[word]doc/content1.doc[/word]");
	d2.setValue("[word]doc/content2.doc[/word]");

	//若要将数据区域内容存入文件中,则必须设置属性“setSubmitAsFile”值为true
	d1.setSubmitAsFile(true);
	d2.setSubmitAsFile(true);

	//根据登录用户名设置数据区域可编辑性
	//甲客户:zhangsan登录后
	if (userName.equals("zhangsan")) {
		d1.setEditing(true);
		d2.setEditing(false);
	}
	//乙客户:lisi登录后
	else {
		d2.setEditing(true);
		d1.setEditing(false);
	}

	PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
	poCtrl.setWriter(doc);

	//添加自定义按钮
	poCtrl.addCustomToolButton("保存", "Save", 1);
	poCtrl.addCustomToolButton("全屏/还原", "IsFullScreen", 4);
	//设置服务器页面
	poCtrl.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须
	//设置保存页
	poCtrl.setSaveDataPage("SaveData.jsp?userName=" + userName);
	//设置文档打开方式
	poCtrl.webOpen("doc/test.doc", OpenModeType.docSubmitForm, userName);

保存的代码

	WordDocument doc = new WordDocument(request, response);
	byte[] bytes = null;
	String filePath = "";
	if (request.getParameter("userName") != null && request.getParameter("userName").trim().equalsIgnoreCase("zhangsan")) {
		bytes = doc.openDataRegion("PO_com1").getFileBytes();
		filePath = "content1.doc";
	} else {
		bytes = doc.openDataRegion("PO_com2").getFileBytes();
		filePath = "content2.doc";
	}
	doc.close();
	
	filePath = request.getSession().getServletContext().getRealPath("SetDrByUserWord2/doc/") + "/" + filePath;
	FileOutputStream outputStream = new FileOutputStream(filePath);
	outputStream.write(bytes);
	outputStream.flush();
	outputStream.close();
分享到:
评论

相关推荐

    PageOffice Java 动态填充Word模版

    以生成工资条为例,演示了通过PageOffice开发平台,用Java语言实现Word文档的在线打开、编辑和保存,数据区域数据的动态填充和提交,数据区域插入Word文件,动态填充和提交Word文件中Tabel的数据

    Java生成excel表格设置公式并填充数据

    格式控制,Word/Excel用户输入提交,Word/Excel/PowerPoint/WPS等Office文档的在线打开、只读浏览、编辑、保存等功能外,还给在线协同办公内置了强大的支持功能:可编辑区域控制,强制痕迹保留,并发编辑控制,手写...

    NTKO Office在线编辑痕迹保留Java

    使用NTKO Office文档控件,能够在浏览器窗口中直接编辑Word, Excel等Office文档并保存到Web服务器。实现文档和电子表格的统一管理。同时支持强制痕迹保留,手写签名,电子印章等办公自动化系统必备的功能。是OA系统...

    基于Java的qq截图工具 设计软件源码+word毕业论文文档.zip

    基于Java的qq截图工具 设计软件源码+word毕业论文文档。基于java的QQ截屏工具的设计和实现能够实现对屏幕的随机截取,复制,保存以及添加文字等操作,便于用户对数据的处理。 该软件的功能: (1)随机获取屏幕...

    PageOffice for Java 2.0 专业版

    现在梦想已经成真,想在网页上显示编辑Word、Excel文档并且调用微软Office的强大功能,就直接在Web页面上添加标签就可以了,就和使用常用的Struts标签一样简单方便。 PageOffice是什么? PageOffice for Java是...

    基于Java的QQ屏幕截图工具的设计与实现【LW文档+开题+PPT+讲解视频】

    可以直接将获取到的截图复制到剪切板中,之后可以从剪切板中粘贴到word等文档中。多层菜单栏,可以获取一到多个截图,并以多个界面显示出来,拥有层叠功能。可以通过编辑为截图添加文字,为截图添加一些描述信息之后仍...

    点聚weboffice7

    weboffice 7.0版本信息与下载 更新时间: 2013年 9月 4日 12:16 ...增强版用于特殊订制开发用户,提供了office区域控制实现了在office中控制特殊区域选择定好的内容或者控制指定区域编辑权限;也提供了pdf的生成功能;

    基于Java的模拟写字板的设计与实现软件设计源码+WORD毕业论文文档.zip

    基于Java的模拟写字板的设计与实现软件设计源码+WORD毕业论文文档. 此系统是使用Java语言实现简易写字板程序,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,全选,撤销等...

    SOAOFFICE - 微软 OFFICE 中间件

    22.需要控制不同的用户在Word/Excel中不同的区域中编辑权限的; 23.需要在企业局域网内架设在线Office文档中心、知识管理的; 24.需要在web页面导入导出Excel单元格数据的; ……… SOAOFFICE中间件包括三个内置...

    基于Java的QQ屏幕截图工具的设计与实现.docx

    可以直接将获取到的截图复制到剪切板中,之后可以从剪切板中粘贴到word等文档中。多层菜单栏,可以获取一到多个截图,并以多个界面显示出来,拥有层叠功能。可以通过编辑为截图添加文字,为截图添加一些描述信息之后仍...

    基于Java的qq截图工具的设计与实现

    可以直接将获取到的截图复制到剪切板中,之后可以从剪切板中粘贴到word等文档中。多层菜单栏,可以获取一到多个截图,并以多个界面显示出来,拥有层叠功能。可以通过编辑为截图添加文字,为截图添加一些描述信息之后仍...

    基于Java的QQ屏幕截图工具的设计与实现

    可以直接将获取到的截图复制到剪切板中,之后可以从剪切板中粘贴到word等文档中。多层菜单栏,可以获取一到多个截图,并以多个界面显示出来,拥有层叠功能。可以通过编辑为截图添加文字,为截图添加一些描述信息之后仍...

    基于java的qq屏幕截图工具系统与实现毕业设计(项目报告+答辩PPT+源代码+讲解视频).zip

    可以直接将获取到的截图复制到剪切板中,之后可以从剪切板中粘贴到word等文档中。多层菜单栏,可以获取一到多个截图,并以多个界面显示出来,拥有层叠功能。可以通过编辑为截图添加文字,为截图添加一些描述信息之后仍...

    【设计】java高级程序设计期末复习题.docx

    文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 【关键字】设计 Java高级程序设计第二学期 期末复习题 判断题 1. 2. java.awt包是Java语言用来构建图形用户界面(GUI)的类库。( ) 3. 容器,一个容器...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    基于SSM的个人博客系统设计软件程序源码+数据库+WORD毕业设计论文文档.zip

    基于SSM的个人博客系统设计软件程序源码+数据库+WORD毕业设计论文文档, 个人博客系统主要用于发表个人博客,记录个人生活日常,学习心得,技术分享等,供他人浏览,查阅,评论等。本系统结构如下: (1)博主端: ...

    计算机应用基础E卷.doc

    动画刷 占位符 视图 节 在文本选定区单击选定Word文档中表格的一行,再执行"开始"选项卡中的"剪切"按钮, 则_______。 删除该行,表格减少一行 将该行各单元格的内容删除,变成空白 合并表格 将该行的边框删除,...

    华报智能报表工具

    ReportAll报表控件/插件:嵌入到程序窗体或Web页面中的符合微软Com规范的ActiveX控件,用于展现或编辑(仅针对设计器版)报表的外观和采集数据,同时提供了API编程接口,便于开发人员对其进行各种控制。 数据源SDK...

    地大《计算机文化基础》在线作业一-0011.docx

    C:文字和图片 D:文字和数字 答案:A TCP是()的缩写 A:传输控制协议 B:互联网协议 C:超文本传输协议 D:以上都不是 答案:A 在Word文档中插入图片后,可直接使用图片的快捷菜单进行编辑,打开图片快捷菜单的鼠标...

Global site tag (gtag.js) - Google Analytics