java poi excel操作

package com.tkqd.util.poi;

 

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

 

import org.apache.log4j.Logger;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.util.HSSFCellUtil;

import org.apache.poi.ss.usermodel.CellStyle;

import org.apache.poi.ss.usermodel.Font;

import org.apache.poi.ss.util.CellRangeAddress;

 

/**

 * 描述:Excel写操作帮助类

 * @author ALEX

 * @since 2010-11-24

 * @version 1.0v

 */

public class ExcelUtil {

private static final Logger log=Logger.getLogger(ExcelUtil.class);

/**

* 功能:将HSSFWorkbook写入Excel文件

* @param wb HSSFWorkbook

* @param absPath 写入文件的相对路径

* @param wbName 文件名

*/

public static void writeWorkbook(HSSFWorkbook wb,String fileName){

FileOutputStream fos=null;

try {

fos=new FileOutputStream(fileName);

wb.write(fos);

} catch (FileNotFoundException e) {

log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));

} catch (IOException e) {

log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));

} finally{

try {

if(fos!=null){

fos.close();

}

} catch (IOException e) {

log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));

}

}

}

/**

* 功能:创建HSSFSheet工作簿

* @param wb HSSFWorkbook

* @param sheetName String

* @return HSSFSheet

*/

public static HSSFSheet createSheet(HSSFWorkbook wb,String sheetName){

HSSFSheet sheet=wb.createSheet(sheetName);

sheet.setDefaultColumnWidth(12);

sheet.setGridsPrinted(false);

sheet.setDisplayGridlines(false);

return sheet;

}

/**

* 功能:创建HSSFRow

* @param sheet HSSFSheet

* @param rowNum int

* @param height int

* @return HSSFRow

*/

public static HSSFRow createRow(HSSFSheet sheet,int rowNum,int height){

HSSFRow row=sheet.createRow(rowNum);

row.setHeight((short)height);

return row;

}

/**

* 功能:创建CellStyle样式

* @param wb HSSFWorkbook

* @param backgroundColor 背景色

* @param foregroundColor 前置色

* @param font 字体

* @return CellStyle

*/

public static CellStyle createCellStyle(HSSFWorkbook wb,short backgroundColor,short foregroundColor,short halign,Font font){

CellStyle cs=wb.createCellStyle();

cs.setAlignment(halign);

cs.setVerticalAlignment(CellStyle.VERTICAL_CENTER);

cs.setFillBackgroundColor(backgroundColor);

cs.setFillForegroundColor(foregroundColor);

cs.setFillPattern(CellStyle.SOLID_FOREGROUND);

cs.setFont(font);

return cs;

}

/**

* 功能:创建带边框的CellStyle样式

* @param wb HSSFWorkbook

* @param backgroundColor 背景色

* @param foregroundColor 前置色

* @param font 字体

* @return CellStyle

*/

public static CellStyle createBorderCellStyle(HSSFWorkbook wb,short backgroundColor,short foregroundColor,short halign,Font font){

CellStyle cs=wb.createCellStyle();

cs.setAlignment(halign);

cs.setVerticalAlignment(CellStyle.VERTICAL_CENTER);

cs.setFillBackgroundColor(backgroundColor);

cs.setFillForegroundColor(foregroundColor);

cs.setFillPattern(CellStyle.SOLID_FOREGROUND);

cs.setFont(font);

cs.setBorderLeft(CellStyle.BORDER_DASHED);

cs.setBorderRight(CellStyle.BORDER_DASHED);

cs.setBorderTop(CellStyle.BORDER_DASHED);

cs.setBorderBottom(CellStyle.BORDER_DASHED);  

return cs;

}

/**

* 功能:创建CELL

* @param row HSSFRow

* @param cellNum int

* @param style HSSFStyle

* @return HSSFCell

*/

public static HSSFCell createCell(HSSFRow row,int cellNum,CellStyle style){

HSSFCell cell=row.createCell(cellNum);

cell.setCellStyle(style);

return cell;

}

/**

* 功能:合并单元格

* @param sheet HSSFSheet

* @param firstRow int

* @param lastRow int

* @param firstColumn int

* @param lastColumn int

* @return int 合并区域号码

*/

public static int mergeCell(HSSFSheet sheet,int firstRow,int lastRow,int firstColumn,int lastColumn){

return sheet.addMergedRegion(new CellRangeAddress(firstRow,lastRow,firstColumn,lastColumn));

}

/**

* 功能:创建字体

* @param wb HSSFWorkbook

* @param boldweight short

* @param color short

* @return Font

*/

public static Font createFont(HSSFWorkbook wb,short boldweight,short color,short size){

Font font=wb.createFont();

font.setBoldweight(boldweight);

font.setColor(color);

font.setFontHeightInPoints(size);

return font;

}

/**

* 设置合并单元格的边框样式

* @param sheet HSSFSheet

* @param ca CellRangAddress

* @param style CellStyle

*/

public static void setRegionStyle(HSSFSheet sheet, CellRangeAddress ca,CellStyle style) {  

   for (int i = ca.getFirstRow(); i <= ca.getLastRow(); i++) {  

       HSSFRow row = HSSFCellUtil.getRow(i, sheet);  

       for (int j = ca.getFirstColumn(); j <= ca.getLastColumn(); j++) {  

           HSSFCell cell = HSSFCellUtil.getCell(row, j);  

           cell.setCellStyle(style);  

       }  

   }  

}  

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值