java实现Excel表格的导出
java实现Excel表格的导出,此文以user作为例子,首先要了解Excel有版本的差别,这里是2003版本的,也就是后缀名为xls,如果是xlsx会运行出错,如果要导出为xlsx类型的只需要把下文的HSSF开头的改为XSSF即可。
具体实现:
public static void export(List<User> userList)throws Exception{
//指定数据存放位置,注意如果此路径下有重名文件会替换掉里面的内容
OutputStream outputStream=new FileOutputStream("完整的文件路径以及文件名称");
//创建一个工作簿
HSSFWorkbook workbook=new HSSFWorkbook();
//创建一个工作表sheet
HSSFSheet sheet=workbook.createSheet("user");
//构造参数依次表示起始行,截止行,起始列,截止列,合并单元格
CellRangeAddress region=new CellRangeAddress(0,0,0,3);
sheet.addMergedRegion(region);
HSSFCellStyle style=workbook.createCellStyle();
//水平居中
style.setAlignment(HorizontalAlignment.CENTER);
//垂直居中
style.setVerticalAlignment(VerticalAlignment.CENTER);
HSSFRow row1=sheet.createRow(0);
HSSFCell cell=row1.createCell(0);
//设置值,在这里合并单元格相当于标题
cell.setCellValue("用户信息表");
//将样式添加生效
cell.setCellStyle(style);
for(int i=0;i<userList.size();i++){
//行
HSSFRow row = sheet.createRow(i+1);
//对列赋值
row.createCell(0).setCellValue(userList.get(i).getUser_id());
row.createCell(1).setCellValue(userList.get(i).getUser_name());
row.createCell(2).setCellValue(userList.get(i).getUser_nickname());
row.createCell(3).setCellValue(userList.get(i).getUser_avatar());
}
workbook.write(outputStream);
outputStream.close();
}