失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java获取word固定位置的值_java 实现保存Word文档中指定位置的数据 又保存整篇文档...

java获取word固定位置的值_java 实现保存Word文档中指定位置的数据 又保存整篇文档...

时间:2018-11-03 06:20:25

相关推荐

java获取word固定位置的值_java 实现保存Word文档中指定位置的数据 又保存整篇文档...

1:需求

用户在线编辑完word 文档后希望保存整篇文档, 同时把保存文档中指定位置的数据

2:方案

用 pageoffice 实现既保存Word文档中指定位置的数据,又保存整篇文档

4:核心思想及代码

(1)既然要保存数据,那么就要用文档的提交模式打开文档

//打开Word文档,当需要同时保存数据和保存文档时,OpenModeType必须是docSubmitForm模式。

poCtrl.webOpen("doc/test.doc", OpenModeType.docSubmitForm, "张佚名");

(2)必须设置文档的文件保存页面和数据保存页面

//设置保存数据的页面

poCtrl.setSaveDataPage("SaveData.jsp");

//设置保存文档的页面

poCtrl.setSaveFilePage("SaveFile.jsp");

这里详细描述一下SaveDataPage和SaveFilePage的区别及结合使用

SaveFilePage:指定的页面可接受二进制文件流、Form域,直接保存修改后的文件。

SaveDataPage:指定的页面可接收页面提交的Word数据区域、Excel表格数据、Form域。

SaveFilePage:指定的页面只能创建FileServer对象。

SaveDataPage:指定的页面只能创建PageOffice.ExcelReader或PageOffice.WordReader命名空间下的对象。

SaveFilePage的使用:只需要保存修改后的文档,而不需要提取文档内容时。

SaveDataPage的使用:需要提交文档内容或用户输入的文档内容时。

5:具体的实现代码

(1)word 模板 (添加指定的书签)

2: 提交模式打开文档,设置文件保存页面及数据保存页面

PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);

//设置服务器页面

poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");

WordDocument wordDoc = new WordDocument();

//打开数据区域,openDataRegion方法的参数代表Word文档中的书签名称

DataRegion dataRegion1 = wordDoc.openDataRegion("PO_userName");

//设置DataRegion的可编辑性

dataRegion1.setEditing(true);

DataRegion dataRegion2 = wordDoc.openDataRegion("PO_deptName");

dataRegion2.setEditing(true);

poCtrl.setWriter(wordDoc);

//添加自定义按钮

poCtrl.addCustomToolButton("保存", "Save", 1);

//设置保存数据的页面

poCtrl.setSaveDataPage("SaveData.jsp");

//设置保存文档的页面

poCtrl.setSaveFilePage("SaveFile.jsp");

//打开Word文档,当需要同时保存数据和保存文档时,OpenModeType必须是docSubmitForm模式。

poCtrl.webOpen("doc/test.doc", OpenModeType.docSubmitForm, "张佚名");

(2)保存数据的页面

WordDocument doc = new WordDocument(request, response);

//获取提交的数值

String dataUserName = doc.openDataRegion("PO_userName").getValue();

String dataDeptName = doc.openDataRegion("PO_deptName").getValue();

System.out.println("====="+dataUserName);

System.out.println("====="+dataDeptName);

doc.close();

(3)保存文件的页面

FileSaver fs=new FileSaver(request,response);

fs.saveToFile(request.getSession().getServletContext().getRealPath("SaveDataAndFile/doc/")+"/"+fs.getFileName());

fs.close();

5:实现效果

在线编辑文档,

获取数据打印的值

6:特殊情况下.需要只保存文档或者只保存数据

举个简单的例子. 比如 某个判断 条件是 "1" 的情况下,只保存文档.条件是2 的情况下 ,只保存数据

方案: 在页面中设置一个form域.保存的时候获取form域的值.根据form 域的值判断保存文件还是保存数据

具体代码:

请输入保存条件,条件是 "1" 的情况下,只保存文档.条件是2 的情况下 ,只保存数据

请输入保存条件:

页面效果

保存的实现代码

核心代码: 获取 PageOfficeCtrl 控件所在页面指定的Form控件的值。

具体实现代码

保存数据页面

WordDocument doc = new WordDocument(request, response);

//获取提交的数值

String dataUserName = doc.openDataRegion("PO_userName").getValue();

String dataDeptName = doc.openDataRegion("PO_deptName").getValue();

String condition= doc.getFormField("txtCondition");

//条件是2的情况下保存数据

if("2".equals(condition)){

//保存数据的代码

System.out.println("====="+dataUserName);

System.out.println("====="+dataDeptName);

}

doc.close();

保存文档页面

FileSaver fs=new FileSaver(request,response);

String condition= fs.getFormField("txtCondition");

//条件是 1 的情况保存文档

if("1".equals(condition)){

//保存文件

fs.saveToFile(request.getSession().getServletContext().getRealPath("SaveDataAndFile/doc/")+"/"+fs.getFileName());

}

fs.close();

如果觉得《java获取word固定位置的值_java 实现保存Word文档中指定位置的数据 又保存整篇文档...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。