文档章节

138.ssm 框架下 导出Excel

Lucky_Me
 Lucky_Me
发布于 06/14 17:48
字数 483
阅读 28
收藏 4

注意:一定不能使用Ajax请求方式,否则 不报错,但是就是下载不下来

1.效果

2.实现过程

2.1 导入jar

        <!-- 13.excel导出 -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>3.10-FINAL</version>
        </dependency>
         <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
             <version>3.10-FINAL</version>
        </dependency>
       <dependency>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi</artifactId>
          <version>3.10-FINAL</version>
        </dependency>

2.2 前端请求

2.3 后台

2.3.1 controller

/**
     * 6.查询所有员工信息 在职在前 离职在后
     * @Title: exportEmpoyeeInfo
     * @Description: 
     * @return void
     * @throws IOException 
     * @throws 
       @date 2018年6月14日 下午5:15:19
     */
    @RequestMapping("/exportEmpoyeeInfo.action")
    public void exportEmpoyeeInfo(HttpServletResponse response ) throws IOException{
        response.setCharacterEncoding("UTF-8");  
        List<User> list =    employeeService.queryAllEmployeeInfoToExcel();
        System.out.println(list);
        //创建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());
                    dataRow.createCell(1).setCellValue(user.getHobby());
                    dataRow.createCell(2).setCellValue(user.getWorkage());
                    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.getDepartment());
                    dataRow.createCell(8).setCellValue(user.getJob());
                    dataRow.createCell(9).setCellValue(user.getStatus());
                    dataRow.createCell(10).setCellValue(user.getIsadmin());
                    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);  */

            // 设置下载时客户端Excel的名称   (上面注释的改进版本,上面的中文不支持)
                    response.setContentType("application/octet-stream;charset=utf-8");
                    response.setHeader("Content-Disposition", "attachment;filename="
                            + new String("在职员工名单".getBytes(),"iso-8859-1") + ".xls");


                OutputStream ouputStream = response.getOutputStream();  
                wb.write(ouputStream);  
                ouputStream.flush();  
                ouputStream.close();
    }

2.3.2 service

2.3.2.1 接口

2.3.2.2 实现类

2.3.3 mapper

2.3.3.1 接口

2.3.3.2 映射文件、

 

© 著作权归作者所有

共有 人打赏支持
Lucky_Me
粉丝 7
博文 187
码字总数 63468
作品 0
美国
加载中

评论(1)

Lucky_Me
Lucky_Me
笔记做的很6啊 自己攒一个
springMVC怎么把结果集写入Excel并导出

框架:springMVC+hibernate 问题:想把结果集写入到Excel中并导出。 问题描述:Excel的导出用的AbstractExcelView类的实现,现在实现导出Excel文件是没问题,可是想把结果集写入到Excel中并导...

Summer丶
2014/07/01
958
1
springmvc + poi 导出excel 可以将结果的集的查询条件也放入到文件中么

基于springmvc框架,利用poi 实现一个导出excel的功能。 页面通过条件查询到结果,然后导出此结果到excel。 我使用的是springmvc的 AbstractExcelView类,通过继承这个类实现excel导出, 第一...

shaozhengmao
2014/06/24
985
1
Object-Excel映射的通用解决方案--FastEJ

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

悟达
2016/09/14
479
0
重度游戏开发解决方案--EgerPro

EgerPro是基于 Egret 3.0 搭建的 HTML5 重度游戏开发解决方案。 一、引入PureMVC,界面逻辑分离 1、Pure MVC是在基于模型、视图和控制器MVC模式建立的一个轻量级的应用框架 2、将Pure MVC移植...

匿名
2016/09/07
395
0
数据量不确定的情况下导出excel饼图图表的方法?

大家好,我一直用jxls+poi导出excel表格,框架建好,主要把excel模板做好就能导出数据了,比较方便,但是今天遇到新的情况:需要导出的excel里包含一个饼图统计表。 但是统计的数据在做模板时...

ActionTime
2016/10/28
201
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部