首页 > 其他分享 >转载:PageOffice既保存Word文件中指定区域的数据又保存整篇文件

转载:PageOffice既保存Word文件中指定区域的数据又保存整篇文件

时间:2023-07-12 10:37:08浏览次数:42  
标签:文件 poCtrl doc 保存 openDataRegion 整篇 PO

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

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

1、普通编辑模式(docNormalEdit)

普通编辑模式就是简单的打开文件,分别设置SaveDataPage保存数据的方法和SaveFilePage保存文件的方法即可,保存文件和保存数据是两个方法,不能写在一起

  1. PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
  2. poCtrl.setServerPage("/api/poserver.zz");//设置服务页面
  3. //添加自定义按钮
  4. poCtrl.addCustomToolButton("保存", "Save", 1);
  5. //设置保存数据的方法
  6. poCtrl.setSaveDataPage("/api/SaveDataAndFile/SaveData");
  7. //设置保存文档的方法
  8. poCtrl.setSaveFilePage("/api/SaveDataAndFile/save");
  9. //打开Word文档
  10. poCtrl.webOpen("G:\\doc\\word1.docx", OpenModeType.docNormalEdit, "张三");

2、表单提交模式(docSubmitForm)

提交模式打开文件默认是不可编辑的,将需要编辑的数据区域的Editing设置为true,其他与普通编辑模式打开一样

  1. PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
  2. poCtrl.setServerPage("/api/poserver.zz");//设置服务页面
  3. WordDocument wordDoc = new WordDocument();
  4. //打开数据区域,openDataRegion方法的参数代表Word文档中的书签名称
  5. DataRegion dataRegion1 = wordDoc.openDataRegion("PO_userName");
  6. //设置DataRegion的可编辑性
  7. dataRegion1.setEditing(true);
  8. DataRegion dataRegion2 = wordDoc.openDataRegion("PO_deptName");
  9. dataRegion2.setEditing(true);
  10. DataRegion dataRegion3 = wordDoc.openDataRegion("PO_cause");
  11. dataRegion3.setEditing(true);
  12. poCtrl.setWriter(wordDoc);
  13. //添加自定义按钮
  14. poCtrl.addCustomToolButton("保存", "Save", 1);
  15. //设置保存数据的方法
  16. poCtrl.setSaveDataPage("/api/SaveDataAndFile/SaveData");
  17. //设置保存文档的方法
  18. poCtrl.setSaveFilePage("/api/SaveDataAndFile/save");
  19. //打开Word文档
  20. poCtrl.webOpen("G:\\doc\\word1.docx", OpenModeType.docSubmitForm, "张三");

三、保存文件

  1. @RequestMapping("save")
  2. public void save(HttpServletRequest request, HttpServletResponse response) {
  3. FileSaver fs = new FileSaver(request, response);
  4. fs.saveToFile("G:\\doc\\" + fs.getFileName());
  5. fs.close();
  6. }

这是本地打开word文件后的效果,书签的内容是在线编辑保存的

四、保存数据

获取到的数据可以保存到数据库或者其他地方,具体保存到哪里与pageoffice没有直接关系,根据自己的业务逻辑处理即可,我是直接在后台输出了下

  1. @RequestMapping("SaveData")
  2. public void saveData(HttpServletRequest request, HttpServletResponse response) {
  3. com.zhuozhengsoft.pageoffice.wordreader.WordDocument doc = new com.zhuozhengsoft.pageoffice.wordreader.WordDocument(request, response);
  4. //获取提交的数值
  5. String dataUserName = doc.openDataRegion("PO_userName").getValue();
  6. String dataDeptName = doc.openDataRegion("PO_deptName").getValue();
  7. String cause = doc.openDataRegion("PO_cause").getValue();
  8. System.out.println("姓名==="+dataUserName);
  9. System.out.println("部门==="+dataDeptName);
  10. System.out.println("原因==="+cause);
  11. doc.close();
  12. }

转载:PageOffice既保存Word文件中指定区域的数据又保存整篇文件

标签:文件,poCtrl,doc,保存,openDataRegion,整篇,PO
From: https://www.cnblogs.com/lhl77/p/17546846.html

相关文章

  • 快速打开Sketch格式文件:仅需两个简单步骤!
    虽然Figma,sketch,xd都很好用,但是设计师在设计工作流中经常会遇到无法在这三者软件中自由导入导出的情况。但是只要我们转变一下思路,因为这三种软件都支持导入sketch格式,所以我们只要将文件格式转成sketch,就能自由的在不同软件间导入导出。 现在就有一个网站可以帮助你快速简......
  • 优化工作流程:快速导出Figma源文件的实用技巧
    因为Figma,sketch,xd都支持导入sketch格式,所以我们只要将文件格式转成sketch,就能自由的在不同软件间导入导出。现在就有一个网站可以帮助你快速简单的导入Figma、Sketch、XD等格式文件,,还可以导出Sketch文件满足跨工具协作,无缝衔接以往工作内容。而且更重要的是这个导入与导......
  • Qt/C++音视频开发46-音视频同步保存到MP4
    一、前言用ffmpeg单独做视频保存不难,单独做音频保存也不难,难的是音视频同步保存到MP4中,重点是音视频要同步,其实这也不难,只要播放那边音视频同步后的数据,写入到文件即可。最难的是在播放过程中不断随机的切换播放进度,而且还会暂停播放、暂停录制的情况出现,这些个复杂情况的出现,可......
  • 解决root用户对HDFS文件系统没有权限的问题
    解决root用户对HDFS文件系统没有权限的问题说明:HDFS文件系统的目录基本都属于supergroup超级用户组,所以就把用户添加到该用户组,即可解决很多权限问题。第一步:在Linux执行如下命令增加supergroup用户组groupaddsupergroup第二步:然后将用户root增加到supergroup用户组......
  • 一个高性能、低内存文件上传流.Net组件
    推荐一个用于轻松实现文件上传功能的组件。项目简介一个基于.NET平台的开源项目,提供了一个简单易用的API,可以在Web应用程序中快速集成文件上传功能。优化多部分流式文件上传性能:减少25%的CPU使用量、50%内存。项目特点1、简单易用的API: 提供了简单的API,可以轻松地集成......
  • 文件操作2-最佳实践
    1'''21.使用with语句管理文件对象的打开和关闭,以确保及时释放资源。32.指定适当的打开模式来满足你的需求,例如只读、写入、追加等43.使用encoding参数指定正确的字符编码,以便正确处理文本文件54.对于大型文件,可以使用逐行读取或使用缓冲区来提高性能65.对......
  • 记录--盘点前端实现文件下载的几种方式
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前端涉及到的文件下载还是很多应用场景的,那么前端文件下载有多少种方式呢?每种方式有什么优缺点呢?下面就来一一介绍。1.使用a标签下载通过a标签的download属性来实现文件下载,这种方式是最简单的,也是我们比较常用......
  • 苹果开发者证书、描述文件申请以及p12文件导出详解
    ios开发有个要求就是,打包时需要带上p12证书和mobileprovisionprofile配置文件p12证书来自于,苹果每年要收99美元的开发者费用,开通了开发者权限,才能生成证书mobileprovision profile配置文件里面设置了测试阶段可以下载应用的ios账号,只有在profile里面的账号才能下载当证书过期......
  • PlayWright(十五)- 配置文件
    上文中我们学习了前置后置,今天我们来学下配置文件,配置文件是什么呢? 1、配置文件是什么先来讲下背景:我们之前执行代码的时候是用命令行pytest-s-v,如果是一个项目的话,我们不会每次执行代码都输入-s-v,所以pytest提供了一个功能-配置文件pytest.ini pytest.ini这个就是......
  • WIMBoot是一种在Windows系统中实现文件镜像引导的技术。它允许将Windows镜像文件(WIM文
    WIMBoot是一种在Windows系统中实现文件镜像引导的技术。它允许将Windows镜像文件(WIM文件)直接注入到硬盘的压缩存储空间中,从而节省磁盘空间并提高系统性能。在WIMBoot中,WIM文件包含了完整的Windows操作系统及其组件。通常,WIM文件中的内容被解压缩并复制到硬盘上的普通文件系统中。......