java 实现不同用户编辑 word 文档的不同区域

阅读更多

1:需求

    案例分析: 员工写了一篇文案 . 需要各位领导需要填写各自的意见 .

2:方案:

    不同的用户编辑不同区域的方法, 

    核心思想:  pageoffice 提供了指定区域是否可编辑的方法

java 实现不同用户编辑 word 文档的不同区域_第1张图片

在这儿解释一下DataRegion.
DataRegion也就是word 文档中的书签.可以看看下面链接中DataRegion具体的描述

https://www.kancloud.cn/pageoffice_course_group/pageoffice_course/663125

3:具体代码

(1):调用PageOffice在线打开word文件,比如:test.doc

(2):设置不同的用户编辑不同的区域(设置数据区域是否可编辑)

String userName = request.getParameter("userName");
	//***************************卓正PageOffice组件的使用********************************
	WordDocument doc = new WordDocument();
	//打开数据区域
	DataRegion dTitle = doc.openDataRegion("PO_title");
	//给数据区域赋值
	dTitle.setValue("某公司第二季度产量报表");
	//设置数据区域可编辑性
	dTitle.setEditing(false);//数据区域不可编辑

	DataRegion dA1 = doc.openDataRegion("PO_A_pro1");
	DataRegion dA2 = doc.openDataRegion("PO_A_pro2");
	DataRegion dB1 = doc.openDataRegion("PO_B_pro1");
	DataRegion dB2 = doc.openDataRegion("PO_B_pro2");

	//根据登录用户名设置数据区域可编辑性
	//A部门经理登录后
	if (userName.equals("zhangsan")) {
		userName = "A部门经理";
		dA1.setEditing(true);
		dA2.setEditing(true);
		dB1.setEditing(false);
		dB2.setEditing(false);
	}
	//B部门经理登录后
	else {
		userName = "B部门经理";
		dB1.setEditing(true);
		dB2.setEditing(true);
		dA1.setEditing(false);
		dA2.setEditing(false);
	}

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


	//设置服务器页面
	poCtrl.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须
	
	poCtrl.setMenubar(false);
	//设置文档打开方式
	poCtrl.webOpen("doc/test.doc", OpenModeType.docSubmitForm, userName); ******必须用submit 模式

你可能感兴趣的:(在线编辑,office控件)