欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-02 23:03:21
...

1:需求

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

2:方案:

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

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

java 实现不同用户编辑 word 文档的不同区域
            
    
    博客分类: java操作word在线编辑word 在线编辑office控件 

在这儿解释一下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 模式