package com.dy.common.util; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.RichTextString; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.RegionUtil; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public abstract class HSSF { public HSSFCellStyle createTitleStyle_1(HSSFWorkbook workbook, boolean hasForegroundColor, int fontSize){ HSSFCellStyle style = workbook.createCellStyle();// Create a style if(hasForegroundColor) { style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);// The style settings }else{ style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings } style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_NONE); style.setBorderLeft(HSSFCellStyle.BORDER_NONE); style.setBorderRight(HSSFCellStyle.BORDER_NONE); style.setBorderTop(HSSFCellStyle.BORDER_NONE); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontName("宋体"); font.setFontHeightInPoints((short) fontSize); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setColor(HSSFColor.BLACK.index); style.setFont(font); return style ; } public HSSFCellStyle createTitleStyle_2(HSSFWorkbook workbook, boolean hasForegroundColor, int fontSize){ HSSFCellStyle style = workbook.createCellStyle();// Create a style if(hasForegroundColor) { style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);// The style settings }else{ style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings } style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_NONE); style.setBorderLeft(HSSFCellStyle.BORDER_NONE); style.setBorderRight(HSSFCellStyle.BORDER_NONE); style.setBorderTop(HSSFCellStyle.BORDER_NONE); style.setAlignment(HSSFCellStyle.ALIGN_LEFT); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontName("宋体"); font.setFontHeightInPoints((short) fontSize); //font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setColor(HSSFColor.BLACK.index); style.setFont(font); return style ; } public HSSFCellStyle createTitleStyle_3(HSSFWorkbook workbook, boolean hasForegroundColor, int fontSize){ HSSFCellStyle style = workbook.createCellStyle();// Create a style if(hasForegroundColor) { style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);// The style settings }else{ style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings } style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontName("宋体"); font.setFontHeightInPoints((short) fontSize); //font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setColor(HSSFColor.BLACK.index); style.setFont(font); return style ; } public HSSFCellStyle createTitleStyle(HSSFWorkbook workbook, boolean hasForegroundColor){ HSSFCellStyle style = workbook.createCellStyle();// Create a style if(hasForegroundColor) { style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);// The style settings }else{ style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings } style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontName("宋体"); font.setFontHeightInPoints((short) 11); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setColor(HSSFColor.GREY_80_PERCENT.index); style.setFont(font); return style ; } public HSSFCellStyle createContentCenterStyle(HSSFWorkbook workbook){ HSSFCellStyle style = workbook.createCellStyle();// Create a style style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontHeightInPoints((short) 10); font.setFontName("宋体"); font.setColor(HSSFColor.GREY_80_PERCENT.index); style.setFont(font); return style ; } public HSSFCellStyle createContentCenterStyleBFH(HSSFWorkbook workbook){ HSSFCellStyle style = workbook.createCellStyle();// Create a style style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontHeightInPoints((short) 10); font.setFontName("宋体"); font.setColor(HSSFColor.GREY_80_PERCENT.index); style.setFont(font); style.setDataFormat(workbook.createDataFormat().getFormat("0.00%")); return style ; } public HSSFCellStyle createContentCenterStyle_1(HSSFWorkbook workbook, int fontSize){ HSSFCellStyle style = workbook.createCellStyle();// Create a style style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontName("宋体"); font.setFontHeightInPoints((short) fontSize); font.setColor(HSSFColor.GREY_80_PERCENT.index); style.setFont(font); return style ; } public HSSFCellStyle createContentLeftStyle(HSSFWorkbook workbook){ HSSFCellStyle style = workbook.createCellStyle();// Create a style style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_LEFT); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontHeightInPoints((short) 10); font.setFontName("宋体"); font.setColor(HSSFColor.GREY_80_PERCENT.index); style.setFont(font); return style ; } public HSSFCellStyle createContentLeftStyle_1(HSSFWorkbook workbook, int fontSize){ HSSFCellStyle style = workbook.createCellStyle();// Create a style style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_LEFT); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontName("宋体"); font.setFontHeightInPoints((short) fontSize); font.setColor(HSSFColor.GREY_80_PERCENT.index); style.setFont(font); return style ; } public HSSFCellStyle createContentRightStyle(HSSFWorkbook workbook){ HSSFCellStyle style = workbook.createCellStyle();// Create a style style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_RIGHT); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontHeightInPoints((short) 10); font.setFontName("宋体"); font.setColor(HSSFColor.GREY_80_PERCENT.index); style.setFont(font); return style ; } public HSSFCellStyle createContentRightStyle_1(HSSFWorkbook workbook, int fontSize){ HSSFCellStyle style = workbook.createCellStyle();// Create a style style.setFillForegroundColor(HSSFColor.WHITE.index);// The style settings style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_RIGHT); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setWrapText(true);// 自动换行 HSSFFont font = workbook.createFont();// Create a font font.setFontName("宋体"); font.setFontHeightInPoints((short) fontSize); font.setColor(HSSFColor.GREY_80_PERCENT.index); style.setFont(font); return style ; } public HSSFCell createTitleCell(HSSFSheet sheet, HSSFRow row, String name, int index, Integer width, HSSFCellStyle style){ HSSFCell cell = row.createCell(index);//Create first column cell if(style != null){ cell.setCellStyle(style); } cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue(new HSSFRichTextString(name)); if(width != null){ sheet.setColumnWidth(index, width * 1000); } return cell ; } public HSSFCell createTitleCell_1(HSSFSheet sheet, HSSFRow row, String name, int index, Double width, HSSFCellStyle style){ HSSFCell cell = row.createCell(index);//Create first column cell if(style != null){ cell.setCellStyle(style); } cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue(new HSSFRichTextString(name)); if(width != null){ sheet.setColumnWidth(index, (int)(width * 1000)); } return cell ; } public void setMergedRegionStyle(HSSFSheet sheet, CellRangeAddress region, HSSFCellStyle style) { for (int i = region.getFirstRow(); i <= region.getLastRow(); i++) { HSSFRow row = sheet.getRow(i); if (row == null) { row = sheet.createRow(i); } for (int j = region.getFirstColumn(); j <= region.getLastColumn(); j++) { HSSFCell cell = row.getCell(j); if (cell == null) { cell = row.createCell(j); cell.setCellValue(""); } cell.setCellStyle(style); } } } public void setRegionBorder(int border, CellRangeAddress region, HSSFSheet sheet, HSSFWorkbook wb){ RegionUtil.setBorderBottom(border,region, sheet, wb); RegionUtil.setBorderLeft(border,region, sheet, wb); RegionUtil.setBorderRight(border,region, sheet, wb); RegionUtil.setBorderTop(border,region, sheet, wb); } public HSSFCell createDataDouCell(HSSFRow row, int index, Double value, HSSFCellStyle style){ HSSFCell cell = row.createCell(index); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellStyle(style); if(value != null){ cell.setCellValue(value); } return cell ; } public HSSFCell createDataNumCell(HSSFRow row, int index, Integer value, HSSFCellStyle style){ HSSFCell cell = row.createCell(index); cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); cell.setCellStyle(style); if(value != null){ cell.setCellValue(value); } return cell ; } public HSSFCell createDataStrCell(HSSFRow row, int index, String value, HSSFCellStyle style){ HSSFCell cell = row.createCell(index); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellStyle(style); if(value != null){ cell.setCellValue(value); } return cell ; } public HSSFCell createDataStrCell(HSSFRow row, int index, RichTextString value, HSSFCellStyle style){ HSSFCell cell = row.createCell(index); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellStyle(style); if(value != null){ cell.setCellValue(value); } return cell ; } public HSSFCell[] createTitleCells(int startColIndex, Object[][] tcs, HSSFSheet sheet, HSSFRow row, HSSFCellStyle style){ HSSFCell[] cells = new HSSFCell[tcs.length] ; for(int i = 0; i < tcs.length; i++){ cells[i] = createTitleCell(sheet, row, (String)tcs[i][0], startColIndex+ i, (Integer)tcs[i][1], style); } return cells ; } public HSSFCell[] createTitleCells_1(int startColIndex, Object[][] tcs, HSSFSheet sheet, HSSFRow row, HSSFCellStyle style){ HSSFCell[] cells = new HSSFCell[tcs.length] ; for(int i = 0; i < tcs.length; i++){ cells[i] = createTitleCell_1(sheet, row, (String)tcs[i][0], startColIndex+ i, (Double)tcs[i][1], style); } return cells ; } public void createContentCells(Object[][] ccs, HSSFRow row){ for(int i = 0; i < ccs.length; i++){ createDataStrCell(row, i, (String)ccs[i][0], (HSSFCellStyle)ccs[i][1]) ; } } /** * 输入EXCEL文件 * @param workbook * @param fileName 文件名 */ public boolean outputExcel(HSSFWorkbook workbook, String fileName) { boolean flag = true ; FileOutputStream fos = null; try { fos = new FileOutputStream(new File(fileName)); workbook.write(fos); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); flag = false ; } catch (IOException e) { e.printStackTrace(); flag = false ; } return flag ; } }