文档章节

152.使用ExcelUtils导出Excel

Lucky_Me
 Lucky_Me
发布于 2018/07/11 10:31
字数 805
阅读 2.3K
收藏 4

建议:使用ajax请求,因为这种发生是直接下载指定位置,使用Ajax回调函数给用户提示

 

原来导出Excel的方式:https://my.oschina.net/springMVCAndspring/blog/1830460

工具类及jar下载路径: https://gitee.com/Luck_Me/ExcelUtis/tree/master

参考文档:https://www.oschina.net/news/97902/excelutil-2-0-1-released

 

1. 效果 

2. 实现过程

2.1 导入依赖的jar

    <!-- 16.使用 execelUtils导出Excel表   这个是在上边第13个  改进的   如果使用 这个 第13个依赖的jar就不需要了 -->
        <dependency>
            <groupId>net.oschina.likaixuan</groupId>
            <artifactId>excelutil</artifactId>
            <version>2.0.1</version>
        </dependency>

2.2  项目中导入 工具类

工具类内容完全不用改(你的包名要改

2.3 使用(有必要粘贴代码)

/**
     * 6.查询所有员工信息 在职在前 离职在后
     * @Title: exportEmpoyeeInfo
     * @Description: 
     * @return void
     * @throws Exception 
     * @throws 
       @date 2018年6月14日 下午5:15:19
     */
    @RequestMapping("/exportEmpoyeeInfo.action")
    public void exportEmpoyeeInfo(HttpServletResponse response ) throws Exception{
        response.setCharacterEncoding("UTF-8");  
        List<User> list =    employeeService.queryAllEmployeeInfoToExcel();
        /*//创建excel文件
        HSSFWorkbook wb = new HSSFWorkbook();
        //创建sheet页
        HSSFSheet sheet = wb.createSheet("员工信息表");
        
        //创建标题行
        HSSFRow titleRow = sheet.createRow(0);
        titleRow.createCell(0).setCellValue("姓名");
        titleRow.createCell(1).setCellValue("爱好");
        titleRow.createCell(2).setCellValue("工作年限");
        titleRow.createCell(3).setCellValue("电话号码");
        titleRow.createCell(4).setCellValue("身份证号码");
        titleRow.createCell(5).setCellValue("户籍");
        titleRow.createCell(6).setCellValue("入职时间");
        titleRow.createCell(7).setCellValue("所在部门");
        titleRow.createCell(8).setCellValue("职位");
        titleRow.createCell(9).setCellValue("状态    ");
        titleRow.createCell(10).setCellValue("管理员");
        titleRow.createCell(11).setCellValue("其他描述");
        //遍历将数据放到excel列中
                for (User user : list) {
                    HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum()+1);
                    dataRow.createCell(0).setCellValue(user.getUsername());
                    String hobby = user.getHobby();
                    if(hobby.length()==0){
                        hobby="";
                    }else{
                        if("1".equals(hobby)){
                            hobby="散步";
                        }
                        if("2".equals(hobby)){
                            hobby="爬山";
                        }
                        if("3".equals(hobby)){
                            hobby="读书";
                        }
                        if("1,2".equals(hobby)){
                            hobby="散步,爬山";
                        }
                        if("1,3".equals(hobby)){
                            hobby="散步,读书";
                        }
                        if("2,3".equals(hobby)){
                            hobby="爬山,读书";
                        }
                        if("1,2,3".equals(hobby)){
                            hobby="散步,爬山,读书";
                        }
                    }
                    
                    dataRow.createCell(1).setCellValue(hobby);
                    String workage = user.getWorkage().toString();
                    if(workage.length()==0){
                        workage="";
                    }else{
                        if("0".equals(workage)){
                            workage="1年以内";
                        }
                        if("1".equals(workage)){
                            workage="1-3年";
                        }
                        if("2".equals(workage)){
                            workage="3-5年";
                        }
                        if("3".equals(workage)){
                            workage="5年以上";
                        }
                    }
                    dataRow.createCell(2).setCellValue(workage);
                    dataRow.createCell(3).setCellValue(user.getPhonenumber());
                    dataRow.createCell(4).setCellValue(user.getPersoncardnumber());
                    dataRow.createCell(5).setCellValue(user.getAddress());
                    dataRow.createCell(6).setCellValue(user.getCreatetime());
                    dataRow.createCell(7).setCellValue(user.getDepartmentname());
                    dataRow.createCell(8).setCellValue(user.getJobname());
                    String status = user.getStatus();
                    if("0".equals(status)){
                        status="在职";
                    }else{
                        status="离职";
                    }
                    dataRow.createCell(9).setCellValue(status);
                    String isadmin = user.getIsadmin();
                    if("0".equals(isadmin)){
                        isadmin="是";
                    }else{
                        isadmin="否";
                    }
                    dataRow.createCell(10).setCellValue(isadmin);
                    dataRow.createCell(11).setCellValue(user.getOther());
                }
                   // 设置下载时客户端Excel的名称  
                String filename =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ".xls";  
                response.setContentType("application/vnd.ms-excel");  
                response.setHeader("Content-disposition", "attachment;filename=" + filename);  
                OutputStream ouputStream = response.getOutputStream();  
                wb.write(ouputStream);  
                ouputStream.flush();  
                ouputStream.close(); */
        Map<String, String> tip = new HashMap<String,String>();
        try {
            //列名 及属性  如:姓名(Excel的列名)  username(pojo属性)  “,”英文的
            String keyValue ="姓名:username,爱好:hobby,工作年限:workage,电话号码:phonenumber,入职时间:createtime"; 
            //获取 当前系统的桌面路径   记得 c:访问权限 要开放
            FileSystemView fsv = FileSystemView.getFileSystemView();
            File com=fsv.getHomeDirectory();    //这便是读取桌面路径的方法了
            String path = com.getPath();
            //调用工具类     cn.guang.ssm.pojo.User:实体类全路径
            ExcelUtil.exportExcel(path+"/工具导出Excel测试.xls",keyValue,list,"cn.guang.ssm.pojo.User");
            tip.put("tip", "导出成功!");
        } catch (Exception e) {
            e.printStackTrace();
            tip.put("tip", "导出失败!");
        }
        //将map转为json
            String jsonStri = JSONObject.toJSONString(tip);
            //将结果以流的形式输出到请求位置
            PrintWriter out=response.getWriter();
            out.println(jsonStri);
            out.flush();
            out.close();
    }

 

© 著作权归作者所有

Lucky_Me
粉丝 20
博文 234
码字总数 90946
作品 0
美国
私信 提问
加载中

评论(2)

素剑步青尘
素剑步青尘

引用来自“素剑步青尘”的评论

如果是浏览器请求,可以直接输出到浏览器中哦,参见导出的另外一个方法
官方文档地址: http://www.likaixuan.top/excelUtil
素剑步青尘
素剑步青尘
如果是浏览器请求,可以直接输出到浏览器中哦,参见导出的另外一个方法
java生成EXCEL表单简单demo

//下面是实体类 package com.test.model; import java.util.Date; //模板数据实体 public class UserTmpl { private int id; private String name; private Date birthday; private String i......

心不温瞳丶
2016/03/03
362
0
基于SSM框架的Excel工具类

前言 本次提供Excel工具类导入和导出的功能,是本人在借鉴网上的部分代码的基础上搭出一个公用化的工具。如有不妥之处,麻烦指明,本人不胜感激。 Excel导出 实现思路 通过Apache提供POI包读...

BoomGred
2018/01/12
164
1
分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续篇)

上周六我发表的文章《分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility》受到了大家的热烈支持与推荐,再此表示感谢,该ExcelUtility类库自上次发文起,又经过了多次的改...

Andrewniu
2019/04/28
0
0
Object-Excel映射的通用解决方案--FastEJ

FastEJ说明 简介 在互联网信息发展的时代,对报表数据的处理需要一个通用化的解决方案。而导入Excel文件到内存、导出内存数据到Excel文件 是一个普遍化的需求。本项目旨在设计一个Object-Ex...

悟达
2016/09/14
796
0
全网最全最简单使用easypoi导入导出Excel的操作手册

文章目录 概况 easypoi 简介 特性 常用注解 EasyPOI的使用 1.引入依赖 注解方式导出Excel 注解方式导入Excel Excel导入校验 定制化修改 总结 参考代码 参考 概况 今天做Excel导出时,发现了一...

码农飞哥
2019/01/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基于 Roslyn 实现解析引擎

基于 Roslyn 实现一个简单的条件解析引擎 最近在做一个勋章的服务,我们想定义一些勋章的获取条件,满足条件之后就给用户颁发一个勋章,定义条件的时候会定义需要哪些参数,参数的类型,获取...

osc_mfth2zpa
3分钟前
14
0
将字符串中的字母全部转换为大写字母/小写字母

<script> let str = "Hello World!"; // 将字符串的字符全部转换为小写字符 function lowerCase(str) { let arr = str.split(""); let newStr = ""; //......

osc_xsr0bfp3
4分钟前
10
0
Vue 商城的一些小demo(后台添加商品、前台购物车、本地存储的使用)

demo 商城后台,添加一种商品 <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <!-- 引入vue.js --> <script src="js/vue.js......

osc_h8lo50ya
5分钟前
19
0
Git使用教程

Git使用教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是...

osc_c9pkd6zt
6分钟前
9
0
文件夹损坏无法打开如何恢复

问题描述: 目录损坏说明这个文件夹内部结构损坏了。文件夹损坏无法打开如何恢复具体恢复方法可以看正文了解(不格式化的恢复方法)。 工具/软件:极限数据恢复软件 步骤1:先百度搜索并下载...

osc_6mbnx553
7分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部