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导出的主要内容,如果未能解决你的问题,请参考以下文章

HSSFXSSF和SXSSF区别以及Excel导出优化

java 导出excel(复杂案例)

excel表格数据导入导出

poi 导出excel 怎么设置合并的单元格自动换行

使用poi导出Excel,并设定单元格内容类型,抛出异常

基于POI导出Excel数据