PageOffice既保存Word文件中指定区域的数据又保存整篇文件-创新互联
一、首先在word文件中给需要在后台获取数据的区域设置以PO_开头的书签。创新互联是一家专注网站建设、网络营销策划、小程序定制开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立10余年以来,已经为上千家成都社区文化墙各业的企业公司提供互联网服务。现在,服务的上千家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。二、通过pageoffice在线打开文件并编辑保存。有两种打开文件的模式
本文题目:PageOffice既保存Word文件中指定区域的数据又保存整篇文件-创新互联
网站网址:http://hbruida.cn/article/dgspsi.html
1、普通编辑模式(docNormalEdit)
普通编辑模式就是简单的打开文件,分别设置SaveDataPage保存数据的方法和SaveFilePage保存文件的方法即可,保存文件和保存数据是两个方法,不能写在一起
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
poCtrl.setServerPage("/api/poserver.zz");//设置服务页面
//添加自定义按钮
poCtrl.addCustomToolButton("保存", "Save", 1);
//设置保存数据的方法
poCtrl.setSaveDataPage("/api/SaveDataAndFile/SaveData");
//设置保存文档的方法
poCtrl.setSaveFilePage("/api/SaveDataAndFile/save");
//打开Word文档
poCtrl.webOpen("G:\\doc\\word1.docx", OpenModeType.docNormalEdit, "张三");
2、表单提交模式(docSubmitForm)
提交模式打开文件默认是不可编辑的,将需要编辑的数据区域的Editing设置为true,其他与普通编辑模式打开一样
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
poCtrl.setServerPage("/api/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);
DataRegion dataRegion3 = wordDoc.openDataRegion("PO_cause");
dataRegion3.setEditing(true);
poCtrl.setWriter(wordDoc);
//添加自定义按钮
poCtrl.addCustomToolButton("保存", "Save", 1);
//设置保存数据的方法
poCtrl.setSaveDataPage("/api/SaveDataAndFile/SaveData");
//设置保存文档的方法
poCtrl.setSaveFilePage("/api/SaveDataAndFile/save");
//打开Word文档
poCtrl.webOpen("G:\\doc\\word1.docx", OpenModeType.docSubmitForm, "张三");
三、保存文件
@RequestMapping("save")
public void save(HttpServletRequest request, HttpServletResponse response) {
FileSaver fs = new FileSaver(request, response);
fs.saveToFile("G:\\doc\\" + fs.getFileName());
fs.close();
}
这是本地打开word文件后的效果,书签的内容是在线编辑保存的
四、保存数据
获取到的数据可以保存到数据库或者其他地方,具体保存到哪里与pageoffice没有直接关系,根据自己的业务逻辑处理即可,我是直接在后台输出了下
@RequestMapping("SaveData")
public void saveData(HttpServletRequest request, HttpServletResponse response) {
com.zhuozhengsoft.pageoffice.wordreader.WordDocument doc = new com.zhuozhengsoft.pageoffice.wordreader.WordDocument(request, response);
//获取提交的数值
String dataUserName = doc.openDataRegion("PO_userName").getValue();
String dataDeptName = doc.openDataRegion("PO_deptName").getValue();
String cause = doc.openDataRegion("PO_cause").getValue();
System.out.println("姓名==="+dataUserName);
System.out.println("部门==="+dataDeptName);
System.out.println("原因==="+cause);
doc.close();
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文题目:PageOffice既保存Word文件中指定区域的数据又保存整篇文件-创新互联
网站网址:http://hbruida.cn/article/dgspsi.html