SSM POI根据预定好的模版导出execle
建立模版文件,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相关推荐
- java导出excel带图片_JAVA的poi实现模版导出excel(带图片).doc
JAVA的poi实现模版导出excel(带图片) 下面是本人使用java的poi实现使用模板到处excel,内容包含图片,使用两种不同的方式实现其到处excel.但是使用jxl实现到处excel只能到 ...
- luckySheet+POI+EasyExcel实现在线excel模版的导出和数据填充
luckySheet+POI+EasyExcel实现在线excel模版的导出和数据填充 业务需求 关键字 luckySheet POI EasyExcel 代码实现 前端luckySheet配置的ex ...
- 【Apache POI】Java Web根据模板导出word文件
最近工作中遇到一个需求:根据word模板文档导出word文件. 查阅了一些资料,发现Apache POI可以实现文档读写的功能,于是就研究了一下,总结如下: Apache-POI在线Javadoc:h ...
- POI实现大数据EXCLE导入导出,解决内存溢出问题
POI实现大数据EXCLE导入导出,解决内存溢出问题 参考文章: (1)POI实现大数据EXCLE导入导出,解决内存溢出问题 (2)https://www.cnblogs.com/huangjian2 ...
- 计算机毕业设计ssm民宿预定管理系统20sxh系统+程序+源码+lw+远程部署
计算机毕业设计ssm民宿预定管理系统20sxh系统+程序+源码+lw+远程部署 计算机毕业设计ssm民宿预定管理系统20sxh系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构:B/S架构 开 ...
- Easypoi模版导出excel
若您正在使用easypoi进行excel导出的话,希望这篇文章能帮到您. 该文章是使用easypoi得模版方式实现excel导出(目前是单sheet的导出), 若需要使用非模版形式导出多sheet得话 ...
- Java 导出Excel利用模版导出
Java导出Excel和word的方式大体相同 1.Excel模版导出到页面下载 首先,导入依赖在pom.xml中我选择的事1.03的版本 第二.在项目或是自己需要的地方建立个文件夹放导出文件的模版, ...
- 使用poi实现Excel的数据分页导出(很全),线上项目可用
使用poi实现Excel的数据分页导出 第一步,所需jar包 pom.xml引入poi的maven依赖 第二步,创建所需工具类 创建自定义注解类,控制需要导出的标题和字段 创建核心工具类 创建抛出异常 ...
- 项目总结23:POI生成Excel文件并浏览器导出
项目总结23:POI生成Excel文件并浏览器导出 具体的逻辑可以参考Controller层的注释 代码1-前端html <button onclick="downLoad()&quo ...
最新文章
- UVA-10714 Ants---蚂蚁模拟
- 旋转矩阵、欧拉角、四元数、轴/角之间的转换
- “混”的中层们,你们的下一站是?
- 信息安全系统设计基础第一周学习总结
- ASP.NET真假分页—真分页
- .NET 基金会完成第一次全面改选
- java运行时异常中文_JAVA——运行时异常(RuntimeException)
- Spring+SpringMVC+Mybatis框架搭建
- addeventlistener监听ajax请求_基于h5的history改善ajax列表请求体验
- Jquery插件 bootstrap-datepicker 日期拾取器
- 一次接口超时排查,花费了我两个星期。。
- linux5分钟打印一次的脚本,centos7中crontab定时计划任务5分钟一次命令写法
- python程序设计第二版课后答案江红_Python核心编程第二版 第十三章课后答案
- Python一周小结
- java 拉勾网,拉钩网java笔试题分享
- 宝讯网捷:拼多多商家如何做好运营?
- 关于Ubuntu18.04+win10双系统开机引导错误的解决方法
- 网易云音乐上关于摇滚歌单的各种排行榜
- Kraljic采购定位模型
- 从零入门IDEA(二)Intellij IDEA软件安装:软件版本、安装环境需求、安装步骤