POI导出用户列表练习功能

在刚刚工作时就写过类似的功能,时隔4年有重新用到改功能,真后悔,自己没有写在博客上以便查看......a今天略微总结

使用的平台:

springMVC+Mybatis,要使用的依赖包:

 js层:



controller层:

/**
     * 导出Excel用户信息
     * @param response
     * @param user
     */
    @RequestMapping("/exportFile")
    public void exportFile(HttpServletResponse response,User user){
        List<String> head = new ArrayList<String>();
        head.add("账号");
        head.add("昵称");
        head.add("所在学校");
        head.add("所在地区");
        head.add("用户类型");
        head.add("手机");
        head.add("邮箱");
        
        List<List<String>> body = new ArrayList<List<String>>();
        
        String bak1 = getUserBak1();
        String bak2 = getUserBak2();

        if (bak1.equals(User.bak1_operator)) {
            user.setAuthority(bak1);
        } else if (!bak1.equals(User.bak1_no)) {
            user.setAuthority(bak1);
            user.setCountyId(bak2);
            if (bak1.equals(User.bak1_schoool)) {
                user.setSchoolId(getUserSchoolId());
            }
        }

        List<User> userList = userService.findSelective(user);
        for (int i = 0; i < userList.size(); i++) {
            List<String> bodyRow = new ArrayList<String>();
            User users = userList.get(i);
            bodyRow.add(users.getUserCode());
            bodyRow.add(users.getNickName());
            bodyRow.add(users.getSchoolName());
            bodyRow.add(users.getAreaName());
            String userType = users.getUserType();
            if(User.userType_leader.equalsIgnoreCase(userType)){
                userType =  "领导";
            }else if(User.userType_research.equalsIgnoreCase(userType)){
                userType =  "教研员";
            }else if(User.userType_teachers.equalsIgnoreCase(userType)){
                userType =  "教师";
            }else if(User.userType_students.equalsIgnoreCase(userType)){
                userType =  "学生";
            }
            bodyRow.add(userType);
            bodyRow.add(users.getPhone());
            bodyRow.add(users.getEmail());
            body.add(bodyRow);
        }
        
        String title = "用户信息";
        HSSFWorkbook wb = ExcelUtil.expExcel(title,head, body);
        ExcelUtil.outFile(response,wb);

    }

ExcelUtil:

package com.zz.zb.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

 

/**

     * 创建excel并填入数据
     * @author David
     * @date  
     * @param head 数据头
     * @param body 主体数据
     * @return HSSFWorkbook
     */
    public static HSSFWorkbook expExcel(String title,List<String> head, List<List<String>> body) {
         //创建一个excel工作簿
         HSSFWorkbook workbook = new HSSFWorkbook();
         //创建一个sheet工作表
         HSSFSheet sheet = workbook.createSheet(title);
         //创建第0行表头,再在这行里在创建单元格,并赋值
         HSSFRow row = sheet.createRow(0);
         //每个单元格
         HSSFCell cell = null;
         for (int i = 0; i < head.size(); i++) {
             cell = row.createCell(i);
             //设置值
             cell.setCellValue(head.get(i));
         }
         //将主体数据填入Excel中
         for (int i = 0; i < body.size(); i++) {
             row = sheet.createRow(i + 1);
            
             List<String> bodyRow = body.get(i);
             for (int k = 0; k < bodyRow.size(); k++) {
                //设置值  从前到后的顺序
                row.createCell(k).setCellValue(bodyRow.get(k));
             }
         }
         return workbook;

    }

    /**
     * 设定导出文档的格式并将工作簿输出到流中
     * @param response
     * @param wb
     */
    public static void outFile(HttpServletResponse response,HSSFWorkbook wb) {
        response.setContentType("application/vnd.ms-excel");    
        response.setHeader("Content-disposition", "attachment;filename=user.xls");
        
        try {
            OutputStream ouputStream = response.getOutputStream();    
            wb.write(ouputStream);    
            ouputStream.flush();    
            ouputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值