日期:2014-05-16 浏览次数:21056 次
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