POI操作EXCEL实现插入数据完美打印
servlet DzdPrintExcel.java
OperateExcel.java 实现插入行操作,下面行自动下移public class FontCellStyle {private static HSSFFont fontStyle = null; private static HSSFCellStyle cellStyle = null; /*设置字体格式*/ public static HSSFFont getHdrFont(HSSFWorkbook wb) { fontStyle = wb.createFont(); fontStyle.setFontName("黑体"); fontStyle.setFontHeightInPoints((short)20); fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); return fontStyle; } public static HSSFFont getFtrFont(HSSFWorkbook wb) { fontStyle = wb.createFont(); fontStyle.setFontName("宋体"); fontStyle.setFontHeightInPoints((short)10); fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); return fontStyle; } public static HSSFFont getContentFont(HSSFWorkbook wb) { fontStyle = wb.createFont(); fontStyle.setFontName("宋体"); fontStyle.setFontHeightInPoints((short)12); fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); return fontStyle; } public static HSSFFont getMergeConflictFont(HSSFWorkbook wb) { fontStyle = wb.createFont(); fontStyle.setFontName("Arial"); fontStyle.setFontHeightInPoints((short)12); fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); return fontStyle; } /*设置Excel单元格格式,引用到字体格式*/ public static HSSFCellStyle getAnyCellStyle(HSSFWorkbook wb,HSSFFont font,short align,short valign,short indent,boolean wrapText) { cellStyle =wb.createCellStyle(); if(font != null) cellStyle.setFont(font); if(align > 0) cellStyle.setAlignment(align); if(valign > 0) cellStyle.setVerticalAlignment(valign); if(indent > 0) cellStyle.setIndention(indent); cellStyle.setWrapText(wrapText);return cellStyle; } public static HSSFCellStyle getBorderNun(HSSFWorkbook wb){ cellStyle =wb.createCellStyle(); cellStyle.setBorderTop(HSSFCellStyle.BORDER_NONE);cellStyle.setBorderLeft(HSSFCellStyle.BORDER_NONE);cellStyle.setBorderBottom(HSSFCellStyle.BORDER_NONE);cellStyle.setBorderRight(HSSFCellStyle.BORDER_NONE);return cellStyle; } public static HSSFCellStyle getBorderTrue(HSSFWorkbook wb){ cellStyle =wb.createCellStyle(); cellStyle.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);cellStyle.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);cellStyle.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);cellStyle.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);fontStyle = wb.createFont(); fontStyle.setFontName("Arial"); fontStyle.setFontHeightInPoints((short)10); fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); cellStyle.setFont(fontStyle);return cellStyle; }/*设置Excel单元格行高、列宽*/ public static void setDefaultHighWidth(HSSFSheet sheet) { sheet.setDefaultRowHeightInPoints(10); sheet.setDefaultColumnWidth((short) 20); } public static void setDefaultCellHighWidthInRange(HSSFSheet sheet,short[] eachCellWidth,int high) { //假定第一行和第一行所需的单元个已经建立好了,也就是说,在这之前已经调用了DesignXlsHeaderFooter.setXlsHeader sheet.setDefaultRowHeightInPoints(high);//设置默认高 /*设置各列单元格宽度*/ for(int i = 0;i < eachCellWidth.length;i++) { //System.out.print(""+i+"\t"); sheet.setColumnWidth((short) i,(short) ((eachCellWidth[i])*256)); } }}
DzdInfo.java 这个是获得数据的类