一、首先在word文件中给需要在后台获取数据的区域设置以PO_开头的书签。

二、通过pageoffice在线打开文件并编辑保存。有两种打开文件的模式

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();}

PageOffice既保存Word文件中指定区域的数据又保存整篇文件相关推荐

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

    1:需求 用户在线编辑完word 文档后希望保存整篇文档, 同时把保存文档中指定位置的数据 2:方案 用 pageoffice  实现既保存Word文档中指定位置的数据,又保存整篇文档 4:核心思想及 ...

  2. Python读写Excel文件中指定区域单元格内容

    封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 图书详情: 配套资源:用书教师可以免费获取教学大纲.教案.课件.源码.习题答 ...

  3. 使用Python批量筛选上千个Excel文件中的某一行数据并另存为新Excel文件(下篇)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 野火烧不尽,春风吹又生. 大家好, ...

  4. matlab中如何读取TXT数据文件中指定行的数据

    面这个函数是取filein中的第line行写入fileout中的程序,如果想实现取特定几行,只要稍微修改一下就可以. function dataout=dataread(filein,fileout, ...

  5. python读取rtf文件中指定的内容_使用Python读取RTF文件时遇到欧元符号问题

    RTF标准使用UTF-16,但形状适合RTF命令序列格式.记录在http://en.wikipedia.org/wiki/Rich_Text_Format#Character_encoding.遗憾的 ...

  6. 系统搜索资源就停止服务器,SQL Server (MSSQLSERVER) 服务启动不了,系统日志显示由于下列服务特定错误而终止: 找不到映像文件中指定的资源名。...

    系统日志报错: SQL Server (MSSQLSERVER) 服务由于下列服务特定错误而终止: 找不到映像文件中指定的资源名. SQL Server日志文件报错 2020-01-19 09:32: ...

  7. SQL指定的服务器名无效,SQL Server (MSSQLSERVER) 服务启动不了,系统日志显示由于下列服务特定错误而终止: 找不到映像文件中指定的资源名。...

    系统日志报错: SQL Server (MSSQLSERVER) 服务由于下列服务特定错误而终止: 找不到映像文件中指定的资源名. SQL Server日志文件报错 2020-01-19 09:32: ...

  8. WINHEX使用技巧(从文件中复制出十六进制数据)

    从文件中复制出十六进制数据 现在打开一个PE文件如下: 当我们选中数据据后,直接点击ctrl+c,ctrl+v后,发现并不是我们想要的16进制数数,而是相应的ascll码对应的字母或者直接没有任何反应 ...

  9. word文档中找不到服务器,【在WORD文件中插入excel表格,编辑保存后重新打开word文件并双击excel时提示“找不到服务器应用程序、源文件】excel整个表格不见了...

    为什么PPT插入EXCEL表格时显示无法找到服务器应用程序 这是由于excel或者ppt只能兼容.低版本的ppt和excel是无法打版本excel插入的表格的. 解决如下: 1.新建一个文本,将后缀名 ...

最新文章

  1. c# 经典521例(2)
  2. 英语写作学习笔录 task1 conclusion
  3. activiti 多租户_Activiti中具有独立数据库架构的多租户
  4. C#基础系列 - 抽象类及其方法的学习
  5. 计算机专业课程群建设,计算机科学与技术专业课程群建设的研究与实践
  6. VS中C++ 项目重命名
  7. linux修改upd53端口,Centos iptables打开端口53
  8. 智能DNS+双线机房
  9. [转载] python复数类型-Python 复数属性和方法操作实例
  10. python文本替换 数据库_用几行python代码实现大量文本文件里的文本替换
  11. php获取qqkey源码,易语言取QQKEY源码
  12. mac excel mysql数据库_macOS系统的Excel从MySQL数据库查询数据的设置方法
  13. Windows无法访问指定设备,路径或文件.您可能没有合适的权限访问这个项目
  14. 【Spark Core】【RDD】【01】核心属性 执行原理
  15. 共享锁(S锁)和排它锁(X锁)
  16. linux系统设置开机启动,linux下设置自己的程序开机自启动
  17. for…in循环语句应用
  18. [VBA学习]如何在Excel的下拉选中显示多选?
  19. 一键爬取全国所有医院数据,可以使用,仅供学习
  20. OpenCV分离图像通道

热门文章

  1. powerdesigner导出表到word,不是正常的表格格式
  2. 给linux系统增加rz功能,Linux系统教程_Linux下rz命令使用的详细实例
  3. 华为不上市真的是因为不缺钱么?
  4. 2011年11月11号,2345浏览器,的V1.2版本又增加 什么好玩的新功能!
  5. 2001太空漫游 2001: A Space Odyssey(1968)
  6. Druid集群搭建 使用套件2.2.3
  7. 傻白入门芯片设计,盘点半导体业界的大佬(十六)
  8. 衡石数据全旅程之数据准备
  9. AI 收藏夹 Vol.004:虚拟爱豆出道
  10. 哈尔滨工业大学2022年计算机考研复试时间公布了吗