/**
* 用于产生当前excel标题
* @param sheet [当前工作表单]
* @param firstRowValue [标题数组]
* @param style [当前单元格风格]
*/
public static void createCurrRowTitle(ExcelSheetRow sheetRow,ExcelWorkBook work ,String[] firstRowValue,HSSFCellStyle style) {
row = sheetRow.createCurrSheetTitle(work);
for (int i = 0; i < firstRowValue.length; i++) {
cell = row.createCell((short) i);
cell.setCellStyle(style);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(firstRowValue[i]);
}
}
/**
* 用于生成excel当前记录内容,标题除外
* @param sheet [当前工作表单]
* @param beanList [当前数据列表,i=Object[]]
* @param style [当前单元格风格]
*/
public static void createCurrRowRecord(ExcelSheetRow sheetRow,ExcelWorkBook work,List beanList,HSSFCellStyle style) {
Object[] obj = null;
for (int i = 0; i < beanList.size(); i++) {
row = sheetRow.createCurrSheetRecord(work,i);
obj = (Object[]) beanList.get(i);
if (obj != null) {
createExcelCell(row, obj,style);
}
}
}
/**
* 需要以数组的方式提供当前每条记录
* 通过数组自动判断有多少列,生成当前行
*/
private static void createExcelCell(HSSFRow row, Object[] obj,HSSFCellStyle style) {
try {
for (int i = 0; i < obj.length; i++) {
try {
if (obj[i].toString() != null) {
cell = row.createCell((short) i);
cell.setCellStyle(style);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(obj[i].toString());
}
} catch (NullPointerException e) {
continue;
}
} catch (Exception ex) {
System.out.print(ex);
}
}
}
4. Excel Style风格工具类
[java]
/**
* Excel Style风格工具类
* @author dsy
* @version 1.0
*/
public class ExcelCellStyleUtils{
//标题样式
public static HSSFCellStyle titleStyle;
//时间样式
public static HSSFCellStyle dataStyle;
//单元格样式
public static HSSFCellStyle nameStyle;
//超链接样式
public static HSSFCellStyle linkStyle;
public static HSSFFont font;
public ExcelCellStyleUtils(ExcelWorkBook work) {
titleStyle = linkStyle(work.getWorkbook());
dataStyle = dataStyle(work.getWorkbook());
nameStyle = nameStyle(work.getWorkbook());
linkStyle = linkStyle(work.getWorkbook());
}
/**
* 超链接样式
* @return HSSFCellStyle
*/
private static HSSFCellStyle linkStyle(HSSFWorkbook work) {
HSSFCellStyle linkStyle = work.createCellStyle();
linkStyle.setBorderBottom((short)1);
linkStyle.setBorderLeft((short)1);
linkStyle.setBorderRight((short)1);
linkStyle.setBorderTop((short)1);
linkStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
linkStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
HSSFFont font = work.createFont();
font.setFontName(HSSFFont.FONT_ARIAL);
font.setUnderline((byte)1);
font.setColor(HSSFColor.BLUE.index);
linkStyle.setFont(font);
return linkStyle;
}
/**s
* 单