Apache POI是一个的开放源码函式库,提供Java程序对Microsoft Office格式档案读和写的功能。POI的结构包括HSSF,XSSF,HWPF,HSLF,HDGF,HPBF,HSMF。其中HSSF提供读写Microsoft Excel XLS格式档案的功能。POI官方网站:http://poi.apache.org/ ,通过POI导出Excel步骤如下
1、通过构造器 HSSFWorkbook() 创建工作簿对象
HSSFWorkbook excel = new HSSFWorkbook();
2、在工作簿中创建表格,如果不指定表格名称就会通过默认名称创建表格
HSSFSheet sheet = excel.createSheet("ABC");
3、创建单元格样式对象,然后通过对象中的方法对单元格样式进行设置,对象用于在声明单元格时对单元格样式进行添加。如果不添加样式或者不进行样式设置,那么就通过默认样式显示单元格
HSSFCellStyle style = excel.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//设置居中对齐
style.setVerticalAlignment((short) 1);//设置垂直居中
style.setWrapText(true);//设置自动换行
HSSFFont font = excel.createFont();//创建字体对象
font.setColor(HSSFColor.BLACK.index);//设置字体颜色
font.setFontHeightInPoints((short) 12);//设置字体大小
font.setFontName("黑体");//设置字体样式
style.setFont(font);//在单元格样式中添加字体样式
4、创建表格的第一行用于显示表头,在行中添加对应列数单元格,在每个声明的单元格中添加声明的单元格样式和对应的表头数据
HSSFRow headerRow = sheet.createRow(0);
HSSFCell headerCell = headerRow.createCell(0);
headerCell.setCellStyle(style);
headerCell.setCellValue("A");
HSSFCell headerCell1 = headerRow.createCell(1);
headerCell1.setCellStyle(style);
headerCell1.setCellValue("b");
HSSFCell headerCell2 = headerRow.createCell(2);
headerCell2.setCellStyle(style);
headerCell2.setCellValue("C");
5、循环需要导出的数据集合,创建对应表格行和单元格,在单元格中添加对应的表格数据和声明的单元格样式
for (int i = 0; i < abc.size(); i++) {
HSSFRow tableRow = sheet.createRow(i+1);
HSSFCell Cell = tableRow.createCell(0);
Cell.setCellStyle(style);
Cell.setCellValue(abc.get(i).getA());
HSSFCell Cell1 = tableRow.createCell(1);
Cell1.setCellStyle(style);
Cell1.setCellValue(abc.get(i).getB());
HSSFCell Cell2 = tableRow.createCell(2);
Cell2.setCellStyle(style);
Cell2.setCellValue(abc.get(i).getC());
}
6、声明字节输出流,指定工作簿保存路径,文件格式为xls。然后通过 write( OutputStream )保存Excel文件
OutputStream stream=new FileOutputStream("D:/ABC.xls");
excel.write(stream);
7、关闭输出流
stream.flush();
stream.close();