博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poi 导出excel2
阅读量:6848 次
发布时间:2019-06-26

本文共 13353 字,大约阅读时间需要 44 分钟。

hot3.png

003 import java.io.FileNotFoundException;  004 import java.io.FileOutputStream;  005 import java.io.IOException;  006    007 import org.apache.log4j.Logger;  008 import org.apache.poi.hssf.usermodel.HSSFCell;  009 import org.apache.poi.hssf.usermodel.HSSFRow;  010 import org.apache.poi.hssf.usermodel.HSSFSheet;  011 import org.apache.poi.hssf.usermodel.HSSFWorkbook;  012 import org.apache.poi.hssf.util.HSSFCellUtil;  013 import org.apache.poi.ss.usermodel.CellStyle;  014 import org.apache.poi.ss.usermodel.Font;  015 import org.apache.poi.ss.util.CellRangeAddress;  016    017 /**  018  * 描述:Excel写操作帮助类  019  * @author  ALEX  020  * @since   2010-11-24  021  * @version 1.0v  022  */ 023 public class ExcelUtil {  024     private static final Logger log=Logger.getLogger(ExcelUtil.class);  025     /**  026      * 功能:将HSSFWorkbook写入Excel文件  027      * @param   wb      HSSFWorkbook  028      * @param   absPath 写入文件的相对路径  029      * @param   wbName  文件名  030      */ 031     public static void writeWorkbook(HSSFWorkbook wb,String fileName){  032         FileOutputStream fos=null;  033         try {  034             fos=new FileOutputStream(fileName);  035             wb.write(fos);  036         } catch (FileNotFoundException e) {  037             log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));  038         } catch (IOException e) {  039             log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));  040         } finally{  041             try {  042                 if(fos!=null){  043                     fos.close();  044                 }  045             } catch (IOException e) {  046                 log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));  047             }  048         }  049     }  050     /**  051      * 功能:创建HSSFSheet工作簿  052      * @param   wb  HSSFWorkbook  053      * @param   sheetName   String  054      * @return  HSSFSheet  055      */ 056     public static HSSFSheet createSheet(HSSFWorkbook wb,String sheetName){  057         HSSFSheet sheet=wb.createSheet(sheetName);  058         sheet.setDefaultColumnWidth(12);  059         sheet.setGridsPrinted(false);  060         sheet.setDisplayGridlines(false);  061         return sheet;  062     }  063     /**  064      * 功能:创建HSSFRow  065      * @param   sheet   HSSFSheet  066      * @param   rowNum  int  067      * @param   height  int  068      * @return  HSSFRow  069      */ 070     public static HSSFRow createRow(HSSFSheet sheet,int rowNum,int height){  071         HSSFRow row=sheet.createRow(rowNum);  072         row.setHeight((short)height);  073         return row;  074     }  075     /**  076      * 功能:创建CellStyle样式  077      * @param   wb              HSSFWorkbook      078      * @param   backgroundColor 背景色   079      * @param   foregroundColor 前置色  080      * @param   font            字体  081      * @return  CellStyle  082      */ 083     public static CellStyle createCellStyle(HSSFWorkbook wb,short backgroundColor,short foregroundColor,short halign,Font font){  084         CellStyle cs=wb.createCellStyle();  085         cs.setAlignment(halign);  086         cs.setVerticalAlignment(CellStyle.VERTICAL_CENTER);  087         cs.setFillBackgroundColor(backgroundColor);  088         cs.setFillForegroundColor(foregroundColor);  089         cs.setFillPattern(CellStyle.SOLID_FOREGROUND);  090         cs.setFont(font);  091         return cs;  092     }  093     /**  094      * 功能:创建带边框的CellStyle样式  095      * @param   wb              HSSFWorkbook      096      * @param   backgroundColor 背景色   097      * @param   foregroundColor 前置色  098      * @param   font            字体  099      * @return  CellStyle  100      */ 101     public static CellStyle createBorderCellStyle(HSSFWorkbook wb,short backgroundColor,short foregroundColor,short halign,Font font){  102         CellStyle cs=wb.createCellStyle();  103         cs.setAlignment(halign);  104         cs.setVerticalAlignment(CellStyle.VERTICAL_CENTER);  105         cs.setFillBackgroundColor(backgroundColor);  106         cs.setFillForegroundColor(foregroundColor);  107         cs.setFillPattern(CellStyle.SOLID_FOREGROUND);  108         cs.setFont(font);  109         cs.setBorderLeft(CellStyle.BORDER_DASHED);  110         cs.setBorderRight(CellStyle.BORDER_DASHED);  111         cs.setBorderTop(CellStyle.BORDER_DASHED);  112         cs.setBorderBottom(CellStyle.BORDER_DASHED);    113         return cs;  114     }  115     /**  116      * 功能:创建CELL  117      * @param   row     HSSFRow   118      * @param   cellNum int  119      * @param   style   HSSFStyle  120      * @return  HSSFCell  121      */ 122     public static HSSFCell createCell(HSSFRow row,int cellNum,CellStyle style){  123         HSSFCell cell=row.createCell(cellNum);  124         cell.setCellStyle(style);  125         return cell;  126     }  127     /**  128      * 功能:合并单元格  129      * @param   sheet       HSSFSheet  130      * @param   firstRow    int  131      * @param   lastRow     int  132      * @param   firstColumn int  133      * @param   lastColumn  int  134      * @return  int         合并区域号码  135      */ 136     public static int mergeCell(HSSFSheet sheet,int firstRow,int lastRow,int firstColumn,int lastColumn){  137         return sheet.addMergedRegion(new CellRangeAddress(firstRow,lastRow,firstColumn,lastColumn));      138     }  139     /**  140      * 功能:创建字体  141      * @param   wb          HSSFWorkbook      142      * @param   boldweight  short  143      * @param   color       short  144      * @return  Font      145      */ 146     public static Font createFont(HSSFWorkbook wb,short boldweight,short color,short size){  147         Font font=wb.createFont();  148         font.setBoldweight(boldweight);  149         font.setColor(color);  150         font.setFontHeightInPoints(size);  151         return font;  152     }  153     /**  154      * 设置合并单元格的边框样式  155      * @param   sheet   HSSFSheet     156      * @param   ca      CellRangAddress  157      * @param   style   CellStyle  158      */ 159     public static void setRegionStyle(HSSFSheet sheet, CellRangeAddress ca,CellStyle style) {    160         for (int i = ca.getFirstRow(); i <= ca.getLastRow(); i++) {    161             HSSFRow row = HSSFCellUtil.getRow(i, sheet);    162             for (int j = ca.getFirstColumn(); j <= ca.getLastColumn(); j++) {    163                 HSSFCell cell = HSSFCellUtil.getCell(row, j);    164                 cell.setCellStyle(style);    165             }    166         }    167     }    168 } [文件] ExcelUtil.java ~ 5KB    下载(553)view sourceprint?001 package com.tkqd.util.poi;  002    003 import java.io.FileNotFoundException;  004 import java.io.FileOutputStream;  005 import java.io.IOException;  006    007 import org.apache.log4j.Logger;  008 import org.apache.poi.hssf.usermodel.HSSFCell;  009 import org.apache.poi.hssf.usermodel.HSSFRow;  010 import org.apache.poi.hssf.usermodel.HSSFSheet;  011 import org.apache.poi.hssf.usermodel.HSSFWorkbook;  012 import org.apache.poi.hssf.util.HSSFCellUtil;  013 import org.apache.poi.ss.usermodel.CellStyle;  014 import org.apache.poi.ss.usermodel.Font;  015 import org.apache.poi.ss.util.CellRangeAddress;  016    017 /**  018  * 描述:Excel写操作帮助类  019  * @author  ALEX  020  * @since   2010-11-24  021  * @version 1.0v  022  */ 023 public class ExcelUtil {  024     private static final Logger log=Logger.getLogger(ExcelUtil.class);  025     /**  026      * 功能:将HSSFWorkbook写入Excel文件  027      * @param   wb      HSSFWorkbook  028      * @param   absPath 写入文件的相对路径  029      * @param   wbName  文件名  030      */ 031     public static void writeWorkbook(HSSFWorkbook wb,String fileName){  032         FileOutputStream fos=null;  033         try {  034             fos=new FileOutputStream(fileName);  035             wb.write(fos);  036         } catch (FileNotFoundException e) {  037             log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));  038         } catch (IOException e) {  039             log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));  040         } finally{  041             try {  042                 if(fos!=null){  043                     fos.close();  044                 }  045             } catch (IOException e) {  046                 log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));  047             }  048         }  049     }  050     /**  051      * 功能:创建HSSFSheet工作簿  052      * @param   wb  HSSFWorkbook  053      * @param   sheetName   String  054      * @return  HSSFSheet  055      */ 056     public static HSSFSheet createSheet(HSSFWorkbook wb,String sheetName){  057         HSSFSheet sheet=wb.createSheet(sheetName);  058         sheet.setDefaultColumnWidth(12);  059         sheet.setGridsPrinted(false);  060         sheet.setDisplayGridlines(false);  061         return sheet;  062     }  063     /**  064      * 功能:创建HSSFRow  065      * @param   sheet   HSSFSheet  066      * @param   rowNum  int  067      * @param   height  int  068      * @return  HSSFRow  069      */ 070     public static HSSFRow createRow(HSSFSheet sheet,int rowNum,int height){  071         HSSFRow row=sheet.createRow(rowNum);  072         row.setHeight((short)height);  073         return row;  074     }  075     /**  076      * 功能:创建CellStyle样式  077      * @param   wb              HSSFWorkbook      078      * @param   backgroundColor 背景色   079      * @param   foregroundColor 前置色  080      * @param   font            字体  081      * @return  CellStyle  082      */ 083     public static CellStyle createCellStyle(HSSFWorkbook wb,short backgroundColor,short foregroundColor,short halign,Font font){  084         CellStyle cs=wb.createCellStyle();  085         cs.setAlignment(halign);  086         cs.setVerticalAlignment(CellStyle.VERTICAL_CENTER);  087         cs.setFillBackgroundColor(backgroundColor);  088         cs.setFillForegroundColor(foregroundColor);  089         cs.setFillPattern(CellStyle.SOLID_FOREGROUND);  090         cs.setFont(font);  091         return cs;  092     }  093     /**  094      * 功能:创建带边框的CellStyle样式  095      * @param   wb              HSSFWorkbook      096      * @param   backgroundColor 背景色   097      * @param   foregroundColor 前置色  098      * @param   font            字体  099      * @return  CellStyle  100      */ 101     public static CellStyle createBorderCellStyle(HSSFWorkbook wb,short backgroundColor,short foregroundColor,short halign,Font font){  102         CellStyle cs=wb.createCellStyle();  103         cs.setAlignment(halign);  104         cs.setVerticalAlignment(CellStyle.VERTICAL_CENTER);  105         cs.setFillBackgroundColor(backgroundColor);  106         cs.setFillForegroundColor(foregroundColor);  107         cs.setFillPattern(CellStyle.SOLID_FOREGROUND);  108         cs.setFont(font);  109         cs.setBorderLeft(CellStyle.BORDER_DASHED);  110         cs.setBorderRight(CellStyle.BORDER_DASHED);  111         cs.setBorderTop(CellStyle.BORDER_DASHED);  112         cs.setBorderBottom(CellStyle.BORDER_DASHED);    113         return cs;  114     }  115     /**  116      * 功能:创建CELL  117      * @param   row     HSSFRow   118      * @param   cellNum int  119      * @param   style   HSSFStyle  120      * @return  HSSFCell  121      */ 122     public static HSSFCell createCell(HSSFRow row,int cellNum,CellStyle style){  123         HSSFCell cell=row.createCell(cellNum);  124         cell.setCellStyle(style);  125         return cell;  126     }  127     /**  128      * 功能:合并单元格  129      * @param   sheet       HSSFSheet  130      * @param   firstRow    int  131      * @param   lastRow     int  132      * @param   firstColumn int  133      * @param   lastColumn  int  134      * @return  int         合并区域号码  135      */ 136     public static int mergeCell(HSSFSheet sheet,int firstRow,int lastRow,int firstColumn,int lastColumn){  137         return sheet.addMergedRegion(new CellRangeAddress(firstRow,lastRow,firstColumn,lastColumn));      138     }  139     /**  140      * 功能:创建字体  141      * @param   wb          HSSFWorkbook      142      * @param   boldweight  short  143      * @param   color       short  144      * @return  Font      145      */ 146     public static Font createFont(HSSFWorkbook wb,short boldweight,short color,short size){  147         Font font=wb.createFont();  148         font.setBoldweight(boldweight);  149         font.setColor(color);  150         font.setFontHeightInPoints(size);  151         return font;  152     }  153     /**  154      * 设置合并单元格的边框样式  155      * @param   sheet   HSSFSheet     156      * @param   ca      CellRangAddress  157      * @param   style   CellStyle  158      */ 159     public static void setRegionStyle(HSSFSheet sheet, CellRangeAddress ca,CellStyle style) {    160         for (int i = ca.getFirstRow(); i <= ca.getLastRow(); i++) {    161             HSSFRow row = HSSFCellUtil.getRow(i, sheet);    162             for (int j = ca.getFirstColumn(); j <= ca.getLastColumn(); j++) {    163                 HSSFCell cell = HSSFCellUtil.getCell(row, j);    164                 cell.setCellStyle(style);    165             }    166         }    167     }    168 }

转载于:https://my.oschina.net/duanyunhu/blog/42941

你可能感兴趣的文章
关于_T、_TEXT、TEXT、_L 、L
查看>>
ruby 更换源 + sass 安装
查看>>
课堂练习——查找水王续
查看>>
在后台设置yii的配置文件
查看>>
(4/24) webpack3.x快速搭建本地服务和实现热更新
查看>>
Android弹窗中的spinner异常解决办法
查看>>
实验课2继续
查看>>
SVN使用主干分支的理解
查看>>
Docker学习笔记_初装的Centos无ifconfig
查看>>
jqgrid 自动换行
查看>>
网址探测器
查看>>
HDU 4282 A very hard mathematic problem [枚举]
查看>>
matlab max函数
查看>>
rails 单数 复数 大写 小写转换 下划线 驼峰命名
查看>>
mysql主从搭建和测试步骤
查看>>
基础概念总结(spring security、Quartz、JUnit测试)
查看>>
安装java的jdk与环境变量
查看>>
CGridCtrl只点击规定行中的按钮才弹出对话框
查看>>
Hadoop1.0.3集成eclipse开发
查看>>
OpenCASCADE Conic to BSpline Curves-Parabola
查看>>