java根据Excel模板导出excel_java按照模板导出excel-程序员宅基地

技术标签: 导出excel  技术栈  excel模板导出  

好久之前做的功能,现在项目又有这个需求,故在此记录一下。

需要jar包:

如果是 maven项目需要引入下面这个就可以

<dependency>
          <groupId>net.sf.jxls</groupId>
          <artifactId>jxls-core</artifactId>
          <version>1.0.3</version>
      </dependency>

如果不是maven:https://download.csdn.net/download/mufeng633/11097086

伪代码:

import net.sf.jxls.exception.ParsePropertyException;
import net.sf.jxls.transformer.XLSTransformer;

public Object exportToProveExcel(){
    
	    try {
    
		    Map<String, String> dataMap = getService().selectdatas(dataId, tableId);
		    //下载文件
		    if (dataMap.size() > 0 ) {
    
			    String currntTime = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
			    Map<String,Object> cMap = new HashMap();
			    Map<String,Object> messMap = new HashMap();
			    //结婚证明Excel模板
			    String srcFilePath = ServletActionContext.getServletContext().getRealPath("WEB-INF/template/结婚证明(A4)0921 (1).xls");
			    String newFileName = "结婚证明 "+currntTime;
			    messMap.put("man",dataMap.get("MAN"));      //男方姓名
			    messMap.put("woman",dataMap.get("WOMAN"));  //女方姓名
			    cMap.put("vms", messMap);

			    HttpServletResponse response = ServletActionContext.getResponse();
			    response.reset();
			    response.setContentType("application"+ File.separator+"vnd.ms-excel");   //下载文版类型
			    response.addHeader("Content-Disposition", "attachment;filename="+new String( newFileName.getBytes("gb2312"), "ISO8859-1" )+".xls");
			    //生成的临时导出文件
			    File destFile = File.createTempFile(newFileName, ".xls");

			    //  开始转换。利用  transformer 转到Excel
			    XLSTransformer transformer = new XLSTransformer();
			    // 参数:srcFilePath:模板源文件    cMap:需要导出的数据   destFile.getAbsolutePath():下载的目标文件
			    transformer.transformXLS(srcFilePath, cMap, destFile.getAbsolutePath());
			    
			    FileInputStream fis = new FileInputStream(destFile);
			    ServletOutputStream out = response.getOutputStream();
			    byte[] bytes = new byte[512];
			    int i = 0;
			    while ((i = fis.read(bytes))  !=-1){
    
				    out.write(bytes,0,i);
			    }
			    out.close();
			    fis.close();
			    destFile.delete();
		    }

	    }catch (Exception e){
    
		    e.printStackTrace();
		    throw new RuntimeException(e.getMessage());
	    }
	    return new DefaultHttpHeaders(SUCCESS).disableCaching();
    }

Excel模板为:
其中,vms就是外层cMap的键

如果需要循环,则可以这样:
添加循环体代码:

<jx:forEach items = "${vms}" var="var"> 
		${var.UserName}
</jx:forEach>

其中: vms为外层的键
如:
在这里插入图片描述

最后导出的文件
在这里插入图片描述

到此 完成。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mufeng633/article/details/89090359

智能推荐

【HTML网页设计】 HTML+CSS+JavaScript+jquery仿慕课网教学培训网站设计实例 企业网站制作_javascript、 jquery技术的网页-程序员宅基地

文章浏览阅读880次,点赞22次,收藏22次。常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求都能满足你的需求。原始HTML+CSS+JS页面设计, web大学生网页设计作业源码,画面精明,排版整洁,内容丰富,主题鲜明,非常适合初学者学习使用。 精彩专栏_javascript、 jquery技术的网页

Spring-全面详解(学习总结)-程序员宅基地

文章浏览阅读10w+次,点赞2.1k次,收藏1.3w次。Spring1.简介1.1.简介简介Spring : 春天 —>给软件行业带来了春天2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。很难想象Rod Johnson的学历 , 他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术官网 : ht_spring

Git||02Git bash-外扩tree的安装与使用教程_=使用gitbash tree-程序员宅基地

文章浏览阅读1.1k次。02Git bash-外扩tree的安装与使用教程简介:在Windows下的Git Bash环境下安装tree工具与使用,很多大佬都标注了怎么安装,但是没有具体到怎么来使用,所以我来补充一下使用(怕你们不放心文件链接我就在CSDN也上传一个)其实最简单的方法是输入这个,连插件都不用装:但是这种方法不支持一些其他操作,所以我们可以往git文件夹里塞一个tree(或许叫它插件?)然后就能用命令..._=使用gitbash tree

DDD系列 - 第0讲 DDD中常提到的应用架构总结(六边形、洋葱、整洁、清晰)_整洁架构 六边形架构-程序员宅基地

文章浏览阅读5.5k次,点赞14次,收藏36次。最近在学习DDD应用架构设计时,接触到了不同的应用架构设计概念,如六边形架构、洋葱架构、整洁架构、清晰架构...,起初是一头雾水,在不断学习过程中也算对此有了些理解,故在本文中对这些架构进行了简单的介绍和总结。............_整洁架构 六边形架构

积少成多Flash ActionScript 3.0(5) - 实例之闹钟(自定义事件, 画图, 动画)_积少成多flash(5) - actionscript 3.0 实例之闹钟(自定-程序员宅基地

文章浏览阅读678次。[源码下载]积少成多Flash ActionScript 3.0(5) - 实例之闹钟(自定义事件, 画图, 动画)作者:webabcd介绍通过一个经典示例,即闹钟,对使用Flash ActionScript 3.0画图、做动画有一个大概的了解,并通过此示例学习自定义事件的开发 自定义事件 - 继承自 Event ,一个 public static const 定义事件类型,其他 publ_积少成多flash(5) - actionscript 3.0 实例之闹钟(自定

趣谈Linux操作系统随笔——4.0 系统调用:公司成立好了就要开始接项目-程序员宅基地

文章浏览阅读247次。系统调用:公司成立好了就要开始接项目软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux-4.19-rc3内核,glibc-2.9目录 系统调用:公司成立好了就要开始接项目1、系统调用的封装——glibc2、32位系统调用过程2.1 执行32位对应的`DO_CALL`2.2 在DO_CALL中陷入内核ENTER_KERNEL2.3 小结3、64位系统调用过程3.1 执行64位对应的`DO_CALL`3.2 在`._公司成立好了就要开始接项目

随便推点

个人简介网页设计作业 静态HTML个人介绍网页作业 DW个人网站模板下载 WEB静态大学生简单网页 个人网页作品代码 个人网页制作 学生个人网页-程序员宅基地

文章浏览阅读335次。个人网页设计、‍♂️个人简历制作、简单静态HTML个人网页作品、个人介绍网站模板 、等网站的设计与制作。个人网页设计网站模板采用DIV CSS布局制作,网页作品有多个页面,如 :个人介绍(文字页面)、我的作品(图片列表)、个人技能(图文页面)、在线留言(表单页面)CSS样式方面网页整体采用左右布局结构,制作了网页背景图片,导航区域每个导航背景色不同,导航背景色与页面背景呼应。 一套A+的网页应该包含 (具体可根据个人要求而定)网站布局方面:计划采用目前主流的、能兼容各大

GPT内功心法:搜索思维到GPT思维的转换_gpt 搜索-程序员宅基地

文章浏览阅读5.7w次,点赞73次,收藏69次。本文详细介绍了GPT内功心法:搜索思维到GPT思维的转换,希望能对学习大语言模型的同学们有所帮助。文章目录1. 前言2. 搜索思维3. GPT思维_gpt 搜索

SQL数据库更改SQL Sever身份认证_ef改成sql server身份验证-程序员宅基地

文章浏览阅读859次。欢迎来到unity学习、unity培训这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌SQL数据库更改SQL Sever身份认证 今天我也没有学到什么,一天都在找地形资源,要不就是不能有,要不就是自带的代码有问题,以后再也不自己找资源走东西了。好了,今天还是回忆一下以前_ef改成sql server身份验证

【0-1背包问题】遗传算法 python 完整代码可直接运行_遗传算法解决0-1背包问题 python-程序员宅基地

文章浏览阅读2k次。python 0-1背包问题 遗传算法 完整代码直接运行_遗传算法解决0-1背包问题 python

Uncaught (in promise) TypeError: fullscreen error-程序员宅基地

文章浏览阅读1.3w次,点赞11次,收藏2次。https://blog.csdn.net/weixin_42532454/article/details/89882568浏览器是否支持全屏console.log(document.fullscreenEnabled)如果不支持全屏看下是不是iframe嵌套引起来的解释:我后来发现我的页面是在iframe框架中使用的并且没有设置allowfullscreen="true"属性;解决方案:设置allowfullscreen="true"属性,就解决了。..._uncaught (in promise) typeerror: fullscreen error

【PaperReading】TERA: Self-Supervised Learning of Transformer Encoder Representation for Speech-程序员宅基地

文章浏览阅读407次。Title:TERA: Self-Supervised Learning of Transformer Encoder Representation for SpeechWhat’s main claim? Key idea?This paper introduces a self-supervised speech pre-training method called TERA. The authors use a multi-target auxiliary task to pre-train _tera: self-supervised learning of transformer encoder representation for spe

推荐文章

热门文章

相关标签