记2018/12/5日,java使用POI在项目代码内生成EXCEL模板,并输出
难点:
1:对模板行单独设置样式
2:对数字列设置文本格式
POI常用EXCEL组件:
HSSFWorkbook excel的文档对象
HSSFSheet excel的表单
HSSFRow excel的行
HSSFCell excel的格子单元
HSSFFont excel字体
HSSFDataFormat 日期格式
HSSFHeader sheet头
HSSFFooter sheet尾(只有打印的时候才能看到效果)
HSSFCellStyle cell样式
HSSFDateUtil 日期
HSSFPrintSetup 打印
HSSFErrorConstants 错误信息表
代码如下:
//创建HSSFWorkbook对象
HSSFWorkbook wb =new HSSFWorkbook();
//创建HSSFSheet对象
HSSFSheet sheet = wb.createSheet("sheet0");
sheet.setDefaultRowHeightInPoints(20);//这是设置整个列表的高度高
sheet.setDefaultColumnWidth(20);//设置整个列表的宽度
// sheet.addMergedRegion(new CellRangeAddress(1,10,0,10));//合并单元格,数字代表的依次为起始行,截至行,起始列, 截至列
HSSFCellStyle cellStyle=wb.createCellStyle();//创建样式
cellStyle.setAlignment(HSSFCellStyle.VERTICAL_CENTER);//左右居中
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中
cellStyle.setFillPattern(HSSFCellStyle.DIAMONDS);//设置填充方式(填充图案)
cellStyle.setFillForegroundColor(HSSFColor.RED.index);//设置前景色
cellStyle.setFillBackgroundColor(HSSFColor.LIGHT_YELLOW.index);//设置背景颜色
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_SLANTED_DASH_DOT);//设置底边边框,同理可设置其它边框
cellStyle.setBottomBorderColor(HSSFColor.DARK_RED.index); // 设置单元格底部的边框颜色
HSSFRow row = sheet.createRow(0);//创建行元素对象,数字表示行数,0为第一行
for (int i=0;i<10;i++){
HSSFCell cell = row.createCell(i);//创建单元格对象,为每一个单元格
row.setHeightInPoints(50);//针对当前列设置行高
cell.setCellValue("单元格中的中文"+i);//设置当前单元格显示内容
cell.setCellStyle(cellStyle);//设置当前单元格样式
}
HSSFRow row1 = sheet.createRow(1);//创建行对象,1表示为EXCEL表格中第二行
HSSFCellStyle cellStyle1 = wb.createCellStyle();//建立样式
cellStyle1.setDataFormat(HSSFDataFormat.getBuiltinFormat("@"));//设置格式为文本
row1.setRowStyle(cellStyle1);//给EXCEL单元格第二行单独设置样式
sheet.setDefaultColumnStyle(1,cellStyle1);//给表设置默认的列属性,数字1表示第二列,cellStyle1为样式
//输出Excel文件
FileOutputStream output=new FileOutputStream("F:\\workbook.xls");
wb.write(output);
output.flush();