HSSF实现Excel导出
Posted 秦家十月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HSSF实现Excel导出相关的知识,希望对你有一定的参考价值。
HSSF导出Exl
创建Exl文件、sheet页、行(row)、单元格(cell)
HSSFWorkBook workBook=new HSSFWorkBook();
HSSFSheet sheet=workBook.createSheet();
HSSFRow row0=sheet.createRow(0);
HSSFCell cell=row0.createCell();
给单元格设置内容
cell.setCellValue(‘这是导出的第一行‘);
给单元格设置样式
HSSFCellStyle cellStyle= workBook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); //设置水平居中
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); //设置垂直居中
cellStyle.setFillForegroundColor((short) HSSFColor.BLUE.Index);
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); //设置单元格的颜色
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//设置单元格的边框,其他的是top,left,right
cell.setCellStyle(style);
关于HSSFColor的颜色,必须是short类型,因此数据最多不超过64,实际上,这个值介于8-64之间才会生效;
那么,如果HSSFColor给出的颜色都不符合需求,那么就需要自定义颜色了,这里用到HSSFPalette对象
HSSFPalette palette=workBook.createCustomPallete();
palette.setColorAtIndex((short)8,(byte)222,(byte)222,(byte)222);
//第一个参数就是setFillForeGroundColor(short index)中的index,后面的三个分别是三原色 r,g,b
这样设置之后,原先8对应的颜色就会被我们定义的颜色覆盖
设置行高和字体
row.setHightInPoint((short)22); //设置行高
HSSFFont font=workBook.creatFont();
font.setFontHeightInPoint((short)16);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
cellStyle.setFont(font);
注意:
HSSFCellStyle的设置值最好只设置一遍,不然会不起效果,也就是说如果有其他的样式,最好用HSSFWorkBook再实例一个style
设置冻结单元格
sheet.createFreezePane(int col,int row)
看完以上,基本上一个excel的基本功能就能实现了,创建怎样的行,怎么的单元格就看你的需要了,下面来说说导出
导出可以使用文件输出流FileOutputStream
try{
OutputStream outStream=new FileOutputStream(String outPath);
workBook.write(outStream);
outStream.flush();
outStream.close();
}catch(IOException e){
e.printStack();
}
知道了以上内容,基本上就可以满足一个Exl导出需求的实现了!!!!
以上是关于HSSF实现Excel导出的主要内容,如果未能解决你的问题,请参考以下文章