`
妮子321
  • 浏览: 82093 次
  • 性别: 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();
分享到:
评论

相关推荐

    wps在线编辑,java+vue

    5. 权限控制:通过用户登录和授权系统,控制不同用户对文档的访问和编辑权限。 6. 后端服务:处理前端请求,与数据库交互,存储和检索文档,实现文件的读写操作。 为了实现这些功能,开发者可能会使用以下技术: - ...

    PageOffice Java 动态填充Word模版

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

    完美解决方案:Java生成复杂Word文档

    在Java开发中,生成复杂的Word文档一直是一个挑战,尤其是在满足严格的格式和打印需求时。传统的解决方案如Apache POI和iText在处理大量表格、图片以及复杂的文档布局时,往往显得力不从心。然而,通过利用Word自...

    Ueditor集成Word导入(富文本编辑器).zip

    集成Ueditor与Word导入功能是一项实用的改进,允许用户直接将Word文档的内容导入到编辑器中,极大地提高了内容创作的效率。这项功能对于那些习惯于使用Word进行文字编辑的用户来说尤其方便,因为他们可以避免复制...

    VUE动态生成word的实现

    VUE动态生成Word文档的实现是一个涉及前端技术与文档处理技术的复杂过程,适用于Web开发领域中对文档生成功能的需求。通过使用Vue.js框架,开发者可以利用其响应式和组件化的特点,轻松构建出动态的用户界面。结合...

    让你看到的每个jsp页面都可以像word文档一样

    标题中的“让你看到的每个jsp页面都可以像word文档一样”是指一种技术实现,允许用户在浏览器中对JSP页面进行实时编辑,就像使用Word文档那样方便。这种技术结合了JavaServer Pages (JSP) 和前端JavaScript,使得...

    Android 读写word文档,按照指定位置插入文字,替换文字,表格,图片,替换表格中文字图片

    本教程将详细讲解如何在Android中实现读写Word文档,包括在指定位置插入文字、替换现有文字、插入和修改表格以及插入和替换图片。 首先,我们需要引入Apache POI库,这是一个Java API,用于处理微软的Office文档,...

    java调用ireport生成word报告

    - 运行上述Java程序,将自动填充报表模版,并根据指定的输出路径生成Word文档。 #### 五、总结 通过上述步骤,我们可以轻松地使用Java调用iReport工具来生成Word报告。此外,对于需要生成Excel或PDF格式的报告,只...

    jsp页仿word编辑器输入框

    二、Java编辑器与JSP 在JSP(JavaServer Pages)中,富文本编辑器的实现通常是通过引入JavaScript库或者使用Java插件。常见的富文本编辑器库有CKEditor、TinyMCE、Quill等,它们提供了丰富的API和配置选项,能够方便...

    java 操作office文档

    这涉及到Apache POI库的使用,这是一个强大的工具,允许开发者在Java环境中读取、创建和修改Microsoft Office文档,包括Word、Excel和PowerPoint。在这个场景中,我们将深入探讨如何使用POI进行单元格的合并、数据行...

    ueditor添加导入word插件

    本教程将详细讲解如何在UEditor中添加导入Word文档的功能,并通过Java后端进行实现。 首先,我们需要理解UEditor的基本工作原理。UEditor是一个JavaScript组件,它提供了一个富文本编辑界面,用户可以直接在浏览器...

    NTKO Office在线编辑痕迹保留Java

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

    ueditor编辑器增加导入word

    然而,原始的Ueditor并不内置导入Word文档的功能,这使得需要将Word内容直接粘贴到编辑器中时,可能会丢失原有的格式,增加了用户的工作量。 为了弥补这一不足,描述中提到的开发者选择自行编写了一个插件,实现了...

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

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

    新建 Microsoft Word 文档1.rar_VCC_java 抓屏方法

    本主题聚焦于Java编程语言中的屏幕抓取技术,结合“新建 Microsoft Word 文档1.rar_VCC_java 抓屏方法”这一标题和描述,我们可以深入探讨Java如何实现这一功能。 Java中实现抓屏主要涉及到Java AWT(Abstract ...

    java使用FCKEditor富文本编辑器

    Java 使用 FCKEditor 富文本编辑器是一种常见的前端与后端交互方式,FCKEditor 是一个功能强大的开源富文本编辑器,它允许用户在网页上编辑 HTML 内容,类似于 Microsoft Word 的界面,使得非技术人员也能轻松编辑...

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

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

    Aspose.Words中提取域中有效内容

    在IT行业中,Aspose.Words是一款强大的文档处理库,它允许开发者在不依赖Microsoft Office的情况下进行Word文档的创建、编辑和格式化。本篇将详细探讨如何利用Aspose.Words来提取Word文档中的域(Field)中有效内容...

Global site tag (gtag.js) - Google Analytics