JAVA使用POI对Word docx模板文件替换数据工具类并通过浏览器下载到本地

这篇具有很好参考价值的文章主要介绍了JAVA使用POI对Word docx模板文件替换数据工具类并通过浏览器下载到本地。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:需要上传一个带有占位符的模板至数据库保存,然后解析模板的占位符,通过类计算结果替换模板中的占位符,并且保存至本地

难点:1.由于我数据库保存是本地保存,并没有path 所以获取模板的path是个难点

 String fileBucket = sysFileInfo.getFileBucket();
        if(fileBucket==null) fileBucket = DEFAULT_BUCKET;
        // 返回文件地址
        String fileUrl = fileOperator.getFilePath(fileBucket, sysFileInfo.getFileObjectName());

2.如何使用计算类,由于我的类是和占位符绑定的,什么样的占位符调用对应的接口

​
//获取执行类
String fullHandleClassName = rotationAnalysisProject.getHandleClass();
if(StringUtil.isNotEmpty(fullHandleClassName)){
    int index = StrUtil.lastIndexOf(fullHandleClassName, ".", fullHandleClassName.length() - 1 , false);
     String handleClassName = StrUtil.sub(fullHandleClassName, index + 1, fullHandleClassName.length());
     handleClassName = StrUtil.lowerFirst(handleClassName);
     RotationAnalysisReport handleClass = SpringUtil.getBean(handleClassName);
     if(ObjectUtil.isNull(handleClass)){
        throw new ServiceException(10001, "模板内"+key+"数据无法计算,请修改");
       }
    //替换内容
    params.put(key, handleClass.calc(rotationAnalysisTemplateParam.getDate()));
}

​

3.如何下载到本地

注意点:这里不适合用ajax请求

效果实现如下图

JAVA使用POI对Word docx模板文件替换数据工具类并通过浏览器下载到本地,java,工作总结及练习,word,spring

 JAVA使用POI对Word docx模板文件替换数据工具类并通过浏览器下载到本地,java,工作总结及练习,word,spring

 

具体代码如下

前段请求(一定不能用ajax请求)

  //请求地址
  var url = getProjectUrl() + 'rotationAnalysisTemplate/download';
  console.log(url+ "?id="+ data.field.id);
  //打开新页面下载
  window.open(url+ "?id="+ data.field.id + "&date="+data.field.date);
  //关闭当前弹框
  layer.closeAll()

severviceImpl文章来源地址https://www.toymoban.com/news/detail-563034.html


    public void downLoad (RotationAnalysisTemplateParam rotationAnalysisTemplateParam, HttpServletResponse response) throws IOException {
        RotationAnalysisTemplate rotationAnalysisTemplate = this.getById(rotationAnalysisTemplateParam.getId());
        SysFileInfo sysFileInfo = sysFileInfoService.getById(rotationAnalysisTemplate.getFileInfoId());

        LocalFileOperator fileOperator = SpringUtil.getBean(LocalFileOperator.class);

        //获取文件地址
        String fileBucket = sysFileInfo.getFileBucket();
        if(fileBucket==null) fileBucket = DEFAULT_BUCKET;
        // 返回文件地址
        String fileUrl = fileOperator.getFilePath(fileBucket,                 
        sysFileInfo.getFileObjectName());


        //解析文档
        //读取文件
        OPCPackage opcPackage = POIXMLDocument.openPackage(fileUrl);

到了这里,关于JAVA使用POI对Word docx模板文件替换数据工具类并通过浏览器下载到本地的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java】poi-tl 使用Word模板渲染动态表格

    poi-tl 是一个基于 Apache POI 和 FreeMarker 的 Java 模板引擎,可以用于动态生成 Word、Excel、PowerPoint 等文档。使用 poi-tl 可以方便地将数据填充到模板中,生成符合要求的文档。 poi-tl官方文档地址:http://deepoove.com/poi-tl/#_%E7%89%88%E6%9C%AC 先附上导出效果图: 这步建议手动创建,之前客服

    2024年01月21日
    浏览(48)
  • Java使用ftl模板文件生成Word,以及Word转换图片或Pdf工具类

    一、写在前面 最近在项目中使用打印功能,发现这个功能我已经写过多次了,下面这个文章的发步日期在2020年,不得不感慨时间之快啊。 https://blog.csdn.net/weixin_43238452/article/details/109636200?spm=1001.2014.3001.5501 下面介绍一下应用场景:这次项目依旧是springboot项目,使用ftl模版生

    2024年02月15日
    浏览(39)
  • Java poi之word文本替换

    应公司需求,需实现以下功能 word文本内容的替换; word文本内容的提取; word文档中图片的提取存放 此文章将使用Apache POI实现Word文档中文本内容的替换更新; Apache POI 是基于 Office Open XML 标准(OOXML)和 Microsoft 的 OLE 2 复合文档格式(OLE2)处理各种文件格式的开源项目。 简

    2024年02月07日
    浏览(30)
  • Java的XWPFTemplate工具类导出word.docx的使用

    代码 模板使用{{占位符}} 图片{{@占位符}} 换行n 读取文字:{{?photoCollection}}{{pho}}{{/photoCollection}} 读取照片:{{?photoCollection}} {@{pho}} {{/photoCollection}} 特别注意:读取照片的时候需要有一个空格才会显示,找了好久的问题,最后加一个空格解决了

    2024年01月20日
    浏览(29)
  • 使用OpenXML库替换docx文档(Word文档)中的特定字段

    在批量生成Word文档的应用中,最常见的需求莫过于替换掉文档中的特定字段以生成新的文档。利用OpenXML库可轻松实现这一需求。 首先放出最简单然而有bug的版本: 该版本的原理是遍历word文档中的每个段落,搜索段落中的每个文字字段对象,如果找到匹配的值就将其替换成

    2024年02月11日
    浏览(30)
  • JAVA poi-tl 制作word模板 表格数据行循环 带有复选框勾选的表格

            java项目实际开发中经常会遇到制作word表单且表格数据行循环功能,甚至带有复选框勾选功能,本文简单介绍如何制作模板以及使用poi-tl生成word。 提示:以下是本篇文章正文内容,下面案例可供参考 如果只用到word那么需要导入的依赖如下(本案例只需要如下2个依

    2024年04月12日
    浏览(23)
  • java使用apache.poi导出word文件

    功能说明: 将试卷导出word,并可以打印,装订,效果图: 下面是实现代码:

    2024年02月15日
    浏览(34)
  • WORD模板替换,将文件给前端下载

    1.word模板设计填充字段加{{填充字段名}} 2.后端依赖 3.后端代码 3.1工具类 3.2接口类 4.前端事件方法 handleDownload(row) {       this.queryParams = row       console.log(row)       this.download(\\\'system/selection/wordTemplate\\\', {         ...this.queryParams       }, `selection_${new Date().getTime()}.docx`)    

    2024年02月13日
    浏览(32)
  • Java利用POI-TL模板导出Word文档

    本文详细介绍了如何使用POI-TL,一个基于Apache POI的Word模板引擎,来导出Word文档。文章内容包括POI-TL的基本介绍,为什么选择POI-TL,以及如何使用POI-TL来处理文本、图片、表格、列表、嵌套、条件判断显示、非空集合循环和图表等内容。

    2024年02月09日
    浏览(89)
  • java 使用POI-TL根据word模版,生成word文件,含图片,富文本。

    1.引入mavna坐标` 2 .poi-tl-ext插件主要用于富文本内容格式在word展现 3.word模版创建 3.具体代码实现 4.本文的miniourl路径实质为网络路径的文件。

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包