天天看點

java 實作不同使用者編輯 word 文檔的不同區域

1:需求

    案例分析: 員工寫了一篇文案 . 需要各位上司需要填寫各自的意見 .

2:方案:

    不同的使用者編輯不同區域的方法, 

    核心思想:  pageoffice 提供了指定區域是否可編輯的方法

java 實作不同使用者編輯 word 文檔的不同區域

在這兒解釋一下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 模式