云飞九天

java导出excel

1.添加架包

<!--导出excel-->
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi</artifactId>
  <version>4.0.0</version>
</dependency>

2.写ExcelUtil工具类

import com.ly.bean.Classes;
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 java.io.IOException;
import java.io.OutputStream;
import java.util.List;

public class ExcelUtil {
    //1.创建一个excel对象
    static  HSSFWorkbook excel=new HSSFWorkbook();
    //2.创建一个sheet文件
    static HSSFSheet sheet=excel.createSheet("sheet1");
    //3.创建保存文件头目录的数组
    public static String[] headers=null;
    //4.保存sheet表中的列数
    static int cellcount;
    //5.创建第一行
    public static void createhead(int num){
        cellcount=num;
        HSSFRow row= sheet.createRow(0);
        for (int i = 0; i < cellcount; i++) {
            HSSFCell cell= row.createCell(i);
            cell.setCellValue(headers[i]);
        }
    }
    //6.创建其他行 list保存的是要导出的数据
    public static void createother(List list){
        for (int i = 0; i < list.size(); i++) {
            Classes classes=(Classes) list.get(i);
            HSSFRow row= sheet.createRow(i+1);
            HSSFCell c1= row.createCell(0);
            HSSFCell c2= row.createCell(1);
            HSSFCell c3= row.createCell(2);
            HSSFCell c4= row.createCell(3);
            HSSFCell c5= row.createCell(4);
            HSSFCell c6= row.createCell(5);

            c1.setCellValue(classes.getDepartment().getDepartname());
            c2.setCellValue(classes.getClassnum());
            c3.setCellValue(classes.getClassname());
            c4.setCellValue(classes.getClassteacher());
            c5.setCellValue(classes.getPeoplecount());
            c6.setCellValue(classes.getClassstate());

        }
    }

    //设置io流和excel的关系
    public static void export(OutputStream outputStream) {
        try {
            //1.设置以表格的方式输出
            sheet.setGridsPrinted(true);
            //2.建立io的关系
            excel.write(outputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

3.在Controller层匹配导出方法

//导出数据
    @RequestMapping("/Educational/class/todaochu")
    public void daochu(int[] single, HttpServletResponse response) {
        PageInfo pg = classService.getall(null, null, 0, 0, single,null); /根据前台传回的id值查找数据库数据
        List<Classes> list = pg.getList();
        ExcelUtil.headers = new String[]{"院系", "班级编号", "班级名称", "班主任老师", "人数", "班级状态"};//设置导出第一行信息
        ExcelUtil.createhead(6);
        ExcelUtil.createother(list);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
        String date = simpleDateFormat.format(new Date());
        FileOutputStream out = null;
        try {
            out = new FileOutputStream("d:\\class" + date + ".xls");//保存磁盘路径+保存时间做到不覆盖
            ExcelUtil.export(out);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            try {
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        response.setContentType("text/html;charset=utf-8");
        try {
            PrintWriter out2 = response.getWriter();
            out2.print("<script>alert('导出成功');location.href='/Educational/class/getclasslist'</script>");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

 

posted on 2018-10-19 17:40  云飞九天  阅读(181)  评论(0编辑  收藏  举报

导航