POI导出excel文件
1. POI常用操作格式简介
- HSSF- 读写Excel XLS格式文档
- XSSF - 读写Excel XLSX格式文档
- HWPF - 读写Word Doc格式文档
- HSLF - 读写PPT 格式文档
2.使用HSSF导出xls步骤简记
//创建一个工作簿
HSSFWorkbook wk = new HSSFWorkbook();
//创建工作表
HSFFSheet sheet = wk.creatSheet();//还可以传入一个String类型的参数为当前sheet的名称
//需要创建一行,而且要创建一个单元格
HSSFRow row = sheet.createRow(0);
//创建单元格
HSSFCell cell = row.createCell(0);
//给单元格赋值
cell.setCellValue();//多种重载方法
//设置行高
sheet.getRow(0).setHeight((short)500);
//设置列宽 param1=columnIndex,param2=width
//width:每个字符的大小(和字体有关) *256
sheet.setColumnWidth(0,5000);
//文件保存路径
File file = new File("f:\\poit.xls");
//写入到文件
wk.write(file);
wk.close(file);
//工作表,单元格,行数下标都从0开始
3.设置xls表格样式
//创建表格样式
HSSFCellStyle style = wk.createCellStyle();
style.setBorderBottom(BorderStyle.THIN);//下边框
style.setBorderTop(BorderStyle.THIN);//上
style.setBorderLeft(BorderStyle.THIN);//左
style.setBorderRight(BorderStyle.THIN);//右
//设置水平居中对齐方式
style.setAlignment(HorizontalAlignment.CENTER);
//垂直居中
style.setVerticalAlignment(VerticalAlignment.CENTER);
//设置单元格样式
sheet.createRow(0).createCell(0).setCellStyle(style);
4.合并单元格
sheet.addMergedRegion(new CellRangeAddress(int firstRow ,int lastRow ,int firstCell ,int lasCell));
5.设置字体样式
HSSFFont font = web.createFont();
font.setFontName("宋体");//字体名称要存在于excel,相当于选中了一种字符
//设置字体大小
//font.setFontHeight();//内部需要像素的转换比较麻烦
font.setFontHeightInPoints((short)11);//11相当于excel中的字体大小11
//设置字体是否为黑体
font.setBold(true);
//将字体运用到style中
style.setFont(font);
6.设置日期格式
HSSFCellStyle date_style = wk.createCellStyle();
//拷贝样式方法:style.cloneStyleFrom(anotherStyle);
HSSFDataFormat dataFormat = wk.createDataFormat();
date_style.setDataFormat(dataFormat.getFormat("yyyy-MM-dd hh:mm:ss"));
7.Excel文件导入
HSSFWorkbook wk = new HSSFWorkbook(inputStream);
HSSFSheet sheet = wk.getSheetAt(0);
//一些方法:sheet.getSheetName:获取工作表名称
//sheet.getLastRowNum();//获取最后一行行号
sheet.getRow(0).getCell(0).getStringCellValue()); //:获得单元格内容
8.提供前端文件下载
//设置响应头;
response.setHeader("Content-Disposition","attachment;filename="+new String(filename.getBytes(),"ISO-8859-1"));
//流操作....
9.excel上传文件类型判断
"application/vnd.ms-excel".equals(fileContentType);