建立模版文件,xls格式。打包为template.zip,放入项目根目录的zip包下

Controller

import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;import com.jk.danganweihu.entity.Dqxx;
import com.jk.danganweihu.entity.JbXX;
import com.jk.danganweihu.service.RensdataService;
import com.jk.util.POIExportExcel;
import com.jk.util.PagerEntity;
@RequestMapping("out2Execle")@ResponseBodypublic boolean out2Execle(HttpServletRequest request,String id){
//          FilesImg fileImg=filesImgService.findBinaryByFid("5b049e95bece499086439ad38ba49118");JbXX jbxx = rensdataService.queryJbData(id);Map<String,Object> map=new HashMap<String,Object>();map.put("zwbh", jbxx.getcBh());//职位编号map.put("name", jbxx.getcName());//姓名map.put("sex", jbxx.getcXb());//性别map.put("gzdw", jbxx.getcGzdw());//工作单位map.put("oldName", jbxx.getcCym());//曾用名map.put("mz", jbxx.getcMz());//民族map.put("bmlb", jbxx.getcBmlb());//部门类别map.put("gblb", jbxx.getcGblb());//干部类别
//          map.put("age", "26");//注意模版一定要是xls格式Map<String, String> impOrSaveExcel = POIExportExcel.ImpOrSaveExcel("basicPersonalInfo.xls", "基本人员信息.xls", map, request);if (impOrSaveExcel!=null) {return true;}else {return false;}}

Util

package com.jk.util;import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Blob;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.thunisoft.summer.component.exportoexcel.ExportToExcel;
import com.thunisoft.summer.component.exportoexcel.IDataApplier;
import com.thunisoft.summer.component.exportoexcel.applier.NamesApplier;
import com.thunisoft.summer.component.exportoexcel.template.TemplateManager;/*** tools.* * @author Shangfeng* ████需要引入华宇的summer-cmpt-exporttoexcel-1.0.7████*/
public class POIExportExcel  {/*** 日志.*/private static final Log LOG = LogFactory.getLog(POIExportExcel.class);/*** 获得文件路径.* * @return* @throws Exception*/public String getExcelUrl(String key) throws Exception {InputStream inputStream = null;String url = "";try {inputStream = this.getClass().getResourceAsStream("/props/config.properties");Properties p = new Properties();p.load(inputStream);url = p.getProperty(key);} catch (IOException io) {throw io;} finally {try {inputStream.close();} catch (Exception e) {throw e;}}return url;}/*** 读取报表Excel文档.* * @return 页面*/public String getExcelDocument(HttpServletRequest request) {String returnName = "";returnName = "openReport";String httpUrl = request.getProtocol().substring(0, Integer.valueOf("4")).toLowerCase()+ "://"+ request.getLocalAddr()+ ":"+ request.getLocalPort()+ request.getContextPath();returnName = httpUrl + "/excel/";return returnName;}/*** @param rows*            Excel要装载的数据* @param cellNum*            Excel的列数* @param modelName*            加载模板的名称带文件格式* @param excelName*            所要存储的模板名称带文件格式* @param res*            要填充cell的map对象* @return 返回Object对象*/@SuppressWarnings("unchecked")public static Map<String, String> ImpOrSaveExcel(String modelName,String excelName, Map res,HttpServletRequest request) {Map<String, String> result = new HashMap();// 装载excelif (excelName == null || "".equals(excelName)) {excelName = "temp.xls";}//获取项目的访问路径String contextPath = request.getContextPath(); String url=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+contextPath+"/";String filePath = "";try {//生成Excel要存放的服务器路径
//          filePath =  request.getSession().getServletContext().getRealPath("/fkjgExcel");filePath = "F:/";File tempDir = new File(filePath);if (!tempDir.exists()) {tempDir.mkdirs();}} catch (Exception e1) {LOG.error("文件路径未找到", e1);result.put("success", "false");result.put("msg", "文件路径未找到");return result;}// 拼装后Excel保存服务器路径String excUrl = filePath + "\\" + excelName;// 加载模板,只支持xls格式,自定义模版路径████████HSSFWorkbook wb = TemplateManager.getInstance().getWorkbook("/zip/template.zip", modelName);HSSFSheet hssfSheet = wb.getSheetAt(0);
//        HSSFPatriarch patriarch = hssfSheet.createDrawingPatriarch();//(0,0,0,0设置图片据边框线的距离)HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0,(short) 7, 0, (short) 11, 4);     anchor.setAnchorType(3);     //插入图片
//        patriarch.createPicture(anchor, wb.addPicture(tu, HSSFWorkbook.PICTURE_TYPE_JPEG)); NamesApplier na = new NamesApplier(res);IDataApplier[] daa = new IDataApplier[] { na };// 执行导出ExportToExcel.exportTo(wb, daa);// 结果输出try {url = url+"/fkjgExcel/" + excelName;FileOutputStream fs = new FileOutputStream(excUrl);wb.write(fs);fs.close();result.put("success", "true");result.put("url", url);return result;} catch (IOException e) {LOG.error("文件加载失败", e);result.put("success", "false");result.put("msg", "文件加载失败");return result;}}/*** 生成PDF文件* @param jl*/
//    public void getPdf(TRsglJlryxx jl) {
//        ByteArrayOutputStream bos = new ByteArrayOutputStream();
//        try {
//            String url = null;
//            try {
//                url = getExcelUrl("rsgl.zpry.pdfurl");
//            } catch (Exception e) {
//                LOG.error("获取文件路径出错--", e);
//            }
//            String TemplatePDF = getExcelUrl("rsgl.pdf.mb");
//            try {
//                PdfReader reader = new PdfReader(TemplatePDF);
//                PdfStamper stamp = new PdfStamper(reader, bos);
//                AcroFields form = stamp.getAcroFields();
//                form.setField("xm", jl.getCName());
//                form.setField("sfz", jl.getCZjhm());
//                form.setField("zkz", jl.getCZkzh());
//                if (jl.getCZp() != null && !"".equals(jl.getCZp())) {
//                    TRsglFjxx fjxx = (TRsglFjxx) this.getHibernateTemplate()
//                            .get(TRsglFjxx.class, jl.getCZp());
//                    if (fjxx != null) {
//                        Blob zp = fjxx.getLContent();
//                        if (zp != null) {
//                            Image img = Image.getInstance(zp.getBytes(1,
//                                (int) zp.length()));
//                            img.setDpi(100, 100);
//                            img.setBorderWidth(200);
//                            img.scaleAbsolute(80, 100);
//                            img.setAbsolutePosition(442, 630);
//                            PdfContentByte over = stamp.getOverContent(1);
//                            over.addImage(img);
//                        }
//                    }
//                }
//                stamp.setFormFlattening(true);
//                stamp.close();
//                FileOutputStream fos = new FileOutputStream(url + "\\"
//                        + jl.getCZkzh() + "-" + jl.getCName() + ".pdf");
//                fos.write(bos.toByteArray());
//                fos.close();
//            } catch (Exception e) {
//                LOG.error("生成PDF出错--", e);
//            }
//        } catch (Exception e) {
//            LOG.error("生成PDF出错----", e);
//        }
//    }/*** 生成和下载zip文件 * @param jl*/
//    public String getZip(List<TRsglJlryxx> jl) {
//        String url = null;
//        System.setProperty("sun.zip.encoding",
//            System.getProperty("sun.jnu.encoding"));
//        String resurl = null;
//        try {
//            url = getExcelUrl("rsgl.zpry.pdfurl");
//            File file = new File(url);
//            resurl = url + File.separator + "test001.zip";
//            File zipFile = new File(resurl);
//            InputStream input = null;
//            ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(
//                    zipFile));
//            zipOut.setComment(file.getName());
//            zipOut.setEncoding(System.getProperty("sun.jnu.encoding"));
//            if (file.isDirectory()) {
//                for (int i = 0; i < jl.size(); ++i) {
//                    TRsglJlryxx jlxx = jl.get(i);
//                    String filename = jlxx.getCZkzh() + "-" + jlxx.getCName();
//                    input = new FileInputStream(url + "\\" + filename + ".pdf");
//                    zipOut.putNextEntry(new ZipEntry(file.getName()
//                            + File.separator + filename + ".pdf"));
//                    int temp = 0;
//                    while ((temp = input.read()) != -1) {
//                        zipOut.write(temp);
//                    }
//                    input.close();
//                }
//            }
//            zipOut.closeEntry();
//            zipOut.close();
//            return resurl;
//
//        } catch (Exception e) {
//            LOG.error("生成PDF文件压缩包失败出错--", e);
//            return null;
//        }
//    }/*** 下载文件* @return 文件流*/@SuppressWarnings("all")public Object download(String url, String name) {if (StringUtils.isEmpty(url)) {return null;}Map object = new HashMap();FileInputStream is = null;try {object.put("name", name);is = new FileInputStream(url);object.put("data", is);} catch (FileNotFoundException ef) {LOG.error("下载文件出错:storeException", ef);return null;} catch (Exception e) {LOG.error("下载文件出错:", e);return null;}return object;}
}

JSP点击按钮触发

function out2Execle(id){$.ajax({url:"<%=request.getContextPath()%>/out2Execle.do",type:"post",dataType:"json",data:{id:id},success:function (data){if (data) {alert("导出成功,进入F盘根目录查看")}},error:function (){alert("out2Execle 系统错误");}})}function out2Execle(id){$.ajax({url:"<%=request.getContextPath()%>/out2Execle.do",type:"post",dataType:"json",data:{id:id},success:function (data){if (data) {alert("导出成功,进入F盘根目录查看")}},error:function (){alert("out2Execle 系统错误");}})}

注意:工具类中指定了模版所在zip位于项目的路径默认项目根目录zip包下,模版格式为xls

SSM POI根据预定好的模版导出execle相关推荐

  1. java导出excel带图片_JAVA的poi实现模版导出excel(带图片).doc

    JAVA的poi实现模版导出excel(带图片) 下面是本人使用java的poi实现使用模板到处excel,内容包含图片,使用两种不同的方式实现其到处excel.但是使用jxl实现到处excel只能到 ...

  2. luckySheet+POI+EasyExcel实现在线excel模版的导出和数据填充

    luckySheet+POI+EasyExcel实现在线excel模版的导出和数据填充 业务需求 关键字 luckySheet POI EasyExcel 代码实现 前端luckySheet配置的ex ...

  3. 【Apache POI】Java Web根据模板导出word文件

    最近工作中遇到一个需求:根据word模板文档导出word文件. 查阅了一些资料,发现Apache POI可以实现文档读写的功能,于是就研究了一下,总结如下: Apache-POI在线Javadoc:h ...

  4. POI实现大数据EXCLE导入导出,解决内存溢出问题

    POI实现大数据EXCLE导入导出,解决内存溢出问题 参考文章: (1)POI实现大数据EXCLE导入导出,解决内存溢出问题 (2)https://www.cnblogs.com/huangjian2 ...

  5. 计算机毕业设计ssm民宿预定管理系统20sxh系统+程序+源码+lw+远程部署

    计算机毕业设计ssm民宿预定管理系统20sxh系统+程序+源码+lw+远程部署 计算机毕业设计ssm民宿预定管理系统20sxh系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构:B/S架构 开 ...

  6. Easypoi模版导出excel

    若您正在使用easypoi进行excel导出的话,希望这篇文章能帮到您. 该文章是使用easypoi得模版方式实现excel导出(目前是单sheet的导出), 若需要使用非模版形式导出多sheet得话 ...

  7. Java 导出Excel利用模版导出

    Java导出Excel和word的方式大体相同 1.Excel模版导出到页面下载 首先,导入依赖在pom.xml中我选择的事1.03的版本 第二.在项目或是自己需要的地方建立个文件夹放导出文件的模版, ...

  8. 使用poi实现Excel的数据分页导出(很全),线上项目可用

    使用poi实现Excel的数据分页导出 第一步,所需jar包 pom.xml引入poi的maven依赖 第二步,创建所需工具类 创建自定义注解类,控制需要导出的标题和字段 创建核心工具类 创建抛出异常 ...

  9. 项目总结23:POI生成Excel文件并浏览器导出

    项目总结23:POI生成Excel文件并浏览器导出 具体的逻辑可以参考Controller层的注释 代码1-前端html <button onclick="downLoad()&quo ...

最新文章

  1. UVA-10714 Ants---蚂蚁模拟
  2. 旋转矩阵、欧拉角、四元数、轴/角之间的转换
  3. “混”的中层们,你们的下一站是?
  4. 信息安全系统设计基础第一周学习总结
  5. ASP.NET真假分页—真分页
  6. .NET 基金会完成第一次全面改选
  7. java运行时异常中文_JAVA——运行时异常(RuntimeException)
  8. Spring+SpringMVC+Mybatis框架搭建
  9. addeventlistener监听ajax请求_基于h5的history改善ajax列表请求体验
  10. Jquery插件 bootstrap-datepicker 日期拾取器
  11. 一次接口超时排查,花费了我两个星期。。
  12. linux5分钟打印一次的脚本,centos7中crontab定时计划任务5分钟一次命令写法
  13. python程序设计第二版课后答案江红_Python核心编程第二版 第十三章课后答案
  14. Python一周小结
  15. java 拉勾网,拉钩网java笔试题分享
  16. 宝讯网捷:拼多多商家如何做好运营?
  17. 关于Ubuntu18.04+win10双系统开机引导错误的解决方法
  18. 网易云音乐上关于摇滚歌单的各种排行榜
  19. Kraljic采购定位模型
  20. 从零入门IDEA(二)Intellij IDEA软件安装:软件版本、安装环境需求、安装步骤

热门文章

  1. 《python编程从入门到实践》python入门级-学习笔记(1-2章)——持续更新中
  2. linux shell fifo使用,bash – 在shell脚本中使用mkfifo
  3. kaggle 泰坦尼克项目实战(详细代码分享)——集成学习Soft voting
  4. 讯飞星火大模型体验报告
  5. windows下tree命令的使用方法
  6. 与一个陌生人的聊天记录
  7. 鲸探发布点评:7月11日发售说唱俑、金扣蚌壳羽觞
  8. Android makefile文件解析
  9. 不占内存的浏览器_iPhone 内存不够用?教你腾出 10GB 内存!
  10. 华为OD机试(2023A+B)在线OJ模拟