java导入EXCEL的工具类(以spring-webmvc-4.0.4jar为基础)
1.本工具类继承于 spring-webmvc-4.0.4jar文件心中的一个类 AbstractExcelView
2.代码如下
package com.skjd.util; import java.util.Date; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.web.servlet.view.document.AbstractExcelView; import com.skjd.util.PageData; import com.skjd.util.Tools; /** * 导入到EXCEL * 类名称:ObjectExcelView.java * 类描述: * @author FH * 作者单位: * 联系方式: * @version 1.0 */ public class ObjectExcelView extends AbstractExcelView{ @Override protected void buildExcelDocument(Map<String, Object> model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { // TODO Auto-generated method stub Date date = new Date(); String filename = Tools.date2Str(date, "yyyyMMddHHmmss"); HSSFSheet sheet; HSSFCell cell; response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename="+filename+".xls"); sheet = workbook.createSheet("sheet1"); List<String> titles = (List<String>) model.get("titles"); int len = titles.size(); HSSFCellStyle headerStyle = workbook.createCellStyle(); //标题样式 headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); HSSFFont headerFont = workbook.createFont(); //标题字体 headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); headerFont.setFontHeightInPoints((short)11); headerStyle.setFont(headerFont); short width = 20,height=25*20; sheet.setDefaultColumnWidth(width); for(int i=0; i<len; i++){ //设置标题 String title = titles.get(i); cell = getCell(sheet, 0, i); cell.setCellStyle(headerStyle); setText(cell,title); } sheet.getRow(0).setHeight(height); HSSFCellStyle contentStyle = workbook.createCellStyle(); //内容样式 contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); List<PageData> varList = (List<PageData>) model.get("varList"); int varCount = varList.size(); for(int i=0; i<varCount; i++){ PageData vpd = varList.get(i); for(int j=0;j<len;j++){ String varstr = vpd.getString("var"+(j+1)) != null ? vpd.getString("var"+(j+1)) : ""; cell = getCell(sheet, i+1, j); cell.setCellStyle(contentStyle); setText(cell,varstr); } } } }
3.特此送上案例如下
/** * 导出数据 * @return * @throws Exception */ @RequestMapping(value="/excel") public ModelAndView excel(Page page) throws Exception{ logBefore(logger, "导出数据"); ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); page.setPd(pd); Map<String,Object> dataMap = new HashMap<String,Object>(); List<String> titles = new ArrayList<String>(); titles.add("订单号"); titles.add("乘客姓名"); titles.add("用户手机号"); titles.add("状态"); titles.add("类型"); titles.add("司机姓名"); titles.add("司机手机号"); titles.add("车牌号"); titles.add("订单创建时间"); titles.add("订单结束时间"); titles.add("里程"); titles.add("费用"); dataMap.put("titles", titles); List<PageData> orderList = orderService.datalist(page); List<PageData> varList = new ArrayList<PageData>(); for(int i=0;i<orderList.size();i++){ PageData vpd = new PageData(); vpd.put("var1", orderList.get(i).getString("ordernumber")); vpd.put("var2", orderList.get(i).getString("customer_name")); vpd.put("var3", orderList.get(i).getString("customer_phone")); if(orderList.get(i).get("order_status")!=null){ if("0".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "生成订单");} if("1".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "司机已接单");} if("2".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "确认上车");} if("3".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "行程结束");} if("4".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "完成订单");} if("5".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "到达乘客上车点");} if("99".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "取消订单");} } if(orderList.get(i).get("order_type")!=null){ if("1".equals(orderList.get(i).get("order_type").toString())){vpd.put("var5", "实时专车");} if("2".equals(orderList.get(i).get("order_type").toString())){vpd.put("var5", "预约专车");} if("3".equals(orderList.get(i).get("order_type").toString())){vpd.put("var5", "送机");} if("4".equals(orderList.get(i).get("order_type").toString())){vpd.put("var5", "接机");} } vpd.put("var6", orderList.get(i).getString("name")); vpd.put("var7", orderList.get(i).getString("phone")); vpd.put("var8", orderList.get(i).getString("license_number")); if(orderList.get(i).get("create_time")!=null){vpd.put("var9", orderList.get(i).get("create_time").toString());} if(orderList.get(i).get("end_time")!=null){vpd.put("var10", orderList.get(i).get("end_time").toString());} /*vpd.put("ordernumber", value);*/ if(orderList.get(i).get("actual_price")!=null){vpd.put("var12", orderList.get(i).get("actual_price").toString());} varList.add(vpd); } dataMap.put("varList", varList); ObjectExcelView erv = new ObjectExcelView(); mv = new ModelAndView(erv,dataMap); return mv; }
4.加上截图进行说明

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java新人必学课程,Java进阶学习全路线(内涵Java超级干货推送及专家社群福利)
自从拉了Java社群之后,发现经常有一些新手Java开发在吐槽,吐槽Java不知道从何学起,感觉路很迷惘。其实小编想说,沉下心,你会发现要走的路并不是很难。为了帮助新人更好的成长,小编特意邀请了最课程的陆敏技老师来给大家进行Java基础课程直播分享。除了基础的课程分享之外,6月份小编还会搭建专属的Java学习专区,里面不止有视频进阶课程,还会有相关的Java图文干货推送,搭载Java社群,让学习过程中遇到的问题都能得到解答。 本套课程是零基础Java学习者的入门课程,涵盖了Java初学者应该掌握的所有核心知识,并由最课程创始人、微软MVP陆敏技主讲。课程内容包含了基本语法、运算符、流程控制、面向对象、JavaAPI、IO流、多线程、反射与代理。你学完了本部分课程,不仅能对Java这门编程语言有初步的了解,还能为后续学习高级课程打下坚实的基础。 想听陆老师分享的可以点击: 我要报名 分享老师大致介绍: 陆敏技,最课程创始人,微软最具价值技术专家(MVP),知名博主,畅销书《编写高质量代码:改善 C#程序的 157个建议》作者,CET4/6 网考系统、列车移动售票系统架构师,近20年软件行...
- 下一篇
Bugku-代码审计(数字验证正则绕过)
各位小伙伴,我把Bugku上面的关于代码审计类型的WP为两部分,主要是为了各位小伙伴的阅读质量 希望你们能够多多包涵哦!!!! 7: 解题思路:首先应该了解一个关于php弱类型的知识: 再继续阅读信息就会发现:、 第一处if ($_GET['name'] == $_GET['password'])判断时两数组确实是不同的, 但在第二处else if (sha1($_GET['name']) === sha1($_GET['password']))判断时由于sha1()函数无法处理数组类型,将报错并返回false,false === false条件成立,这样就绕过了sha()函数获得flag,这个时候需要构造类似于:http://120.24.86.145:9009/7.php?name[%20]=1&password[%20]=2 就会得到答案:Flag: flag{bugku--daimasj-a2} 8: 解题思路:关于这一题最主要的是需要知道:md5('240610708') == md5('QNKCDZO'), 当然前提是要明白PHP在处理哈希字符串时,会...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Hadoop3单机部署,实现最简伪集群
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境