Apache POI导入数据到Excel电子表格:
写一个实体:
public class Student {
private long stuid;
private String stuname;
private int stuage;
private char stusex;
private String studate;
public Student(long stuid, String stuname, int stuage, char stusex, String studate) {
super();
this.stuid = stuid;
this.stuname = stuname;
this.stuage = stuage;
this.stusex = stusex;
this.studate = studate;
}
public Student() {
super();
}
public long getStuid() {
return stuid;
}
public void setStuid(long stuid) {
this.stuid = stuid;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public int getStuage() {
return stuage;
}
public void setStuage(int stuage) {
this.stuage = stuage;
}
public char getStusex() {
return stusex;
}
public void setStusex(char stusex) {
this.stusex = stusex;
}
public String getStudate() {
return studate;
}
public void setStudate(String studate) {
this.studate = studate;
}
@Override
public String toString() {
return "stuid=" + stuid + ", stuname=" + stuname + ", stuage=" + stuage + ", stusex=" + stusex
+ ", studate=" + studate;
}
}
正式开始:
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;
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.util.CellRangeAddress;
import entity.Student;
/**
* Apache POI导入数据到Excel电子表格
*
*/
public class PoiExportExcel {
private static void exportExcel() throws Exception{
Map<Integer, Student> map = new HashMap<>();
// 创建三个学生对象
Student s1 = new Student(1001, "张三", 15, '男', "2015年10月10号");
Student s2 = new Student(1002, "李四", 18, '女', "2016年06月06号");
Student s3 = new Student(1003, "王五", 20, '女', "2015年08月08号");
map.put(0, s1);
map.put(1, s2);
map.put(2, s3);
// 第一步:声明一个工作簿
HSSFWorkbook book = new HSSFWorkbook();
// 第二步:声明一个表格(sheet),名字为:2015年学生信息表
HSSFSheet sheet = book.createSheet("2015学生信息表");
// 第三步:声明行对象引用
HSSFRow row;
//设置标题
row = sheet.createRow(0);
row.createCell(0).setCellValue("2015年新生入学数据");
/**
* 合并单元格:new CellRangeAddress(firstRow, lastRow, firstCol, lastCol)
* firstRow:从第几行开始
* lastRow:从第几行结束
* firstCol:从第几个单元格开始
* lastCol:从第几个单元格结束
*/
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 5));
//设置列名称
row = sheet.createRow(1);
row.createCell(0).setCellValue("编号");
row.createCell(1).setCellValue("学号");
row.createCell(2).setCellValue("姓名");
row.createCell(3).setCellValue("年龄");
row.createCell(4).setCellValue("性别");
row.createCell(5).setCellValue("日期");
// 第四步:写入数据
for(int i = 0; i<map.size(); i++){
row = sheet.createRow(i+2);
if(map.containsKey(i)){
Student s = map.get(i);
row.createCell(0).setCellValue(i+1);
row.createCell(1).setCellValue(s.getStuid());
row.createCell(2).setCellValue(s.getStuname());
row.createCell(3).setCellValue(s.getStuage());
row.createCell(4).setCellValue(s.getStusex()=='女'?"女":"男");
row.createCell(5).setCellValue(s.getStudate());
}
}
//创建表格之后设置行高与列宽
for (int i = 0; i < map.size(); i++) {
row = sheet.getRow(i+2);
row.setHeightInPoints(30);
}
// 最后:写入到磁盘
book.write(new FileOutputStream("D:\\学生信息表.xls"));
}
public static void main(String[] args) throws Exception {
exportExcel();
}
}
效果图: