文档章节

138.ssm 框架下 导出Excel

Lucky_Me
 Lucky_Me
发布于 06/14 17:48
字数 483
阅读 42
收藏 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
粉丝 9
博文 206
码字总数 74700
作品 0
美国
私信 提问
加载中

评论(1)

Lucky_Me
Lucky_Me
笔记做的很6啊 自己攒一个
Object-Excel映射的通用解决方案--FastEJ

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

悟达
2016/09/14
479
0
springMVC怎么把结果集写入Excel并导出

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

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

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

shaozhengmao
2014/06/24
1K
1
.Net Core下基于NPOI对Excel、Word操作封装

框架与依赖 框架:.NET Standard 2.0 依赖:DotNetCore.NPOI https://github.com/dotnetcore/NPOI http://www.cnblogs.com/savorboard/p/netcore-npoi.html Excel导入(ExcelImportService)......

holdengong
11/16
0
0
重度游戏开发解决方案--EgerPro

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

匿名
2016/09/07
395
0

没有更多内容

加载失败,请刷新页面

加载更多

微服务分布式事务实现

https://www.processon.com/view/link/5b2144d7e4b001a14d3d2d30

WALK_MAN
今天
2
0
《大漠烟尘》读书笔记及读后感文章3700字

《大漠烟尘》读书笔记及读后感文章3700字: 在这个浮躁的社会里,你有多久没有好好读完一本书了? 我们总觉得自己和别人不一样,所以当看到别人身上的问题时,很少有“反求诸己”,反思自己。...

原创小博客
今天
4
0
大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
今天
3
0
十万个为什么之什么是resultful规范

起源 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点...

尾生
今天
3
0
Terraform配置文件(Terraform configuration)

Terraform配置文件 翻译自Terraform Configuration Terraform用文本文件来描述设备、设置变量。这些文件被称为Terraform配置文件,以.tf结尾。这一部分将讲述Terraform配置文件的加载与格式。...

buddie
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部