利用Apache POI 实现简单的Excel表格导出

1、利用POI API实现简单的Excel表格导出

首先假设一个学生实体类:

package com.sun.poi.domain;

import java.io.Serializable;
import java.util.Date;
public class Student implements Serializable {
    private static final long serialVersionUID = 1L;
    //学生ID
    private int studentId;
    //学生姓名
    private String name;
    //年龄
    private int age;
    //出生年月
    private Date birth;
    public Student() {

    }
    public Student(int studentId, String name, int age, Date birth) {
        super();
        this.studentId = studentId;
        this.name = name;
        this.age = age;
        this.birth = birth;
    }
    public int getStudentId() {
        return studentId;
    }
    public void setStudentId(int studentId) {
        this.studentId = studentId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public Date getBirth() {
        return birth;
    }
    public void setBirth(Date birth) {
        this.birth = birth;
    }
}

利用POI 实现Excel导出功能:

package com.sun.poi.fuction;

import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.sun.poi.domain.Student;

public class CreateSimpleExcelToDisk {

    private static SimpleDateFormat sdf;

    private static List<Student> getStudent() throws Exception{
        List<Student> studentList = new ArrayList<Student>();
        sdf = new SimpleDateFormat("yyyy-mm-dd");

        Student stu1 = new Student(1, "张三", 12, sdf.parse("1999-12-30"));
        Student stu2 = new Student(1, "李四", 12, sdf.parse("2000-4-20"));
        Student stu3 = new Student(1, "王二", 12, sdf.parse("2003-12-15"));
        Student stu4 = new Student(1, "麻子", 12, sdf.parse("1989-11-22"));
        Student stu5 = new Student(1, "铁蛋", 12, sdf.parse("1999-5-11"));
        studentList.add(stu1);
        studentList.add(stu2);
        studentList.add(stu3);
        studentList.add(stu4);
        studentList.add(stu5);
        return studentList;
    }

    public static void main(String[] args) throws Exception {
        //获取数据源
        List<Student> studentList = getStudent();
        //1、创建一个webbook,表示一个Excel文件
        HSSFWorkbook wb = new HSSFWorkbook();
        //2、在Excel文件中添加一个sheet页
        HSSFSheet sheet = wb.createSheet("学生信息表");
        //3、在sheet页中添加表头,第一行
        HSSFRow row = sheet.createRow((int)0);
        //4、设置单元格的样式
        HSSFCellStyle style = wb.createCellStyle();
        //设置样式居中
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        //5、创建一个单元格,并设置居中样式
        HSSFCell cell = row.createCell(0);
        cell.setCellValue("学号");
        cell.setCellStyle(style);
        cell = row.createCell(1);
        cell.setCellValue("姓名");
        cell.setCellStyle(style);
        cell = row.createCell(2);
        cell.setCellValue("年龄");
        cell.setCellStyle(style);
        cell = row.createCell(3);
        cell.setCellValue("生日");
        cell.setCellStyle(style);

        for (int i = 0; i < studentList.size(); i++) {
            row = sheet.createRow(i + 1);
            Student stu = (Student)studentList.get(i);
            row.createCell(0).setCellValue(stu.getStudentId());
            row.createCell(1).setCellValue(stu.getName());
            row.createCell(2).setCellValue(stu.getAge());
            row.createCell(3).setCellValue(sdf.format(stu.getBirth()));
        }

        try {
            //6、导出到磁盘上
            FileOutputStream fout = new FileOutputStream("D:/student.xls");
            wb.write(fout);
            fout.close();
            System.out.println("导出excel成功");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
posted @ 2017-02-21 00:03  远近啊  阅读(498)  评论(0编辑  收藏  举报