日期:2014-05-16 浏览次数:20938 次
package www.dazhi360.com; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFDataFormat; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFHyperlink; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.CellRangeAddress; import org.apache.poi.hssf.util.HSSFColor; /** * 为此类用于将统计数据以电子表格的格式导出 * @author Frank * {@link <a href="http://www.dazhi360.com/">大智360企业培训网</a>} */ public class ExcelUtil { /** * 将Workbook对象写入到一个文件中 * @param wb Workbook对象实例 * @param filepath 文件的绝对路径 */ public static void exportWorkbook(HSSFWorkbook wb,String filepath){ FileOutputStream fos = null; try { fos = new FileOutputStream(filepath); wb.write(fos); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ try { if(fos!=null){ fos.close(); } } catch (IOException e) { e.printStackTrace(); } } } /** * 设置某个单元格的值 * @param cell 单元格对象 * @param value 需要设置的值 */ public static void setCellStringValue(HSSFCell cell,String value){ cell.setCellValue(new HSSFRichTextString(value)); } /** * 合并单元格 * @param sheet sheet对象 * @param fristRow 起始行 * @param lastRow 结束行 * @param firstCol 起始列 * @param lastCol 结束列 */ public static void mergeRegion(HSSFSheet sheet,int fristRow,int lastRow,int firstCol,int lastCol){ sheet.addMergedRegion(new CellRangeAddress(fristRow,lastRow,firstCol,lastCol)); } /** * 获取简单的横向对齐格式样式 * @param align 横向对齐方式 * @return 样式对象 */ public static HSSFCellStyle getStyle(HSSFWorkbook wb,int align){ HSSFCellStyle style = wb.createCellStyle(); style.setAlignment((short)align); return style; } /** * 获取简单包含横向和纵向对齐的样式对象 * @param wb workbook对象 * @param align 横向对齐方式 * @param verticalAlign 纵向对齐方式 * @return 样式对象 */ public static HSSFCellStyle getStyle(HSSFWorkbook wb,int align,int verticalAlign){ HSSFCellStyle style = getStyle(wb, align); style.setVerticalAlignment((short)verticalAlign); return style; } /** * 创建一个单元格样式 * @param wb 表格文本对象 * @param align 横向对齐方式 * @param verticalAlign 纵向对齐方式 * @param fontName 字体名称 * @param height 高度 * @param fontWeight 字体粗细值 * @return 字体对象 */ public static HSSFCellStyle getStyle(HSSFWorkbook wb,int align,int verticalAlign,String fontName,int height,int fontWeight){ HSSFCellStyle style = getStyle(wb, align, verticalAlign); //创建字体 HSSFFont font = wb.createFont(); font.setFontName(fontName); font.setFontHeight((short)fontWeight); font.setBoldweight((short)fontWeight); //设置字体 style.setFont(font); return style; } /** * 获取单元格样式 * @param wb 工作表格 * @param align 横向对齐方式 * @param warpText 是否自动换行 * @param hidden 内容超出是否隐藏 * @return 单元格样式对象 */ public static HSSFCellStyle getStyle(HSSFWorkbook wb,short align,boolean warpText,boolean hidden){ HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(align); style.setWrapText(warpText); style.setHidden(hidden); return style; } public static HSSFCellStyle getStyle(HSSFWorkbook wb,short align,String timeFormat){ HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(align); //创建数据格式对象 HSSFDataFormat format = wb.createDataFormat(); //设置时间格式 style.setDataFormat(format.getFormat(timeFormat)); return style; } /** * 获取一个链接样式 * @param book * @param align * @return */ public static HSSFCellStyle getLinkStyle(HSSFWorkbook book,short align){ HSSFCellStyle style = book.createCellStyle(); style.setAlignment(align); //创建下划线风格和颜色字体 HSSFFont font