说明:此方法依赖于帮助类PoiExcelUtil.java。
/**
* 创建excel
* @param dateList String数组数据集合
* @param titleArray 表头数组
* @param sheetName sheet名称
* @param fileName 文件名称(该功能的最终名称为paht+fileName+sysdate+.xls 如:d:/销售报表2013-10-10.xls)
* @param path 存入路径
*/
public static boolean createExcel(List<String[]> dateList,String[] titleArray,String sheetName,String fileName,String path,String orderDate){
try {
if (null!=dateList && dateList.size()>0){
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = PoiExcelUtil.createSheet(wb, sheetName);
Font font = PoiExcelUtil.createFont(wb, HSSFFont.BOLDWEIGHT_NORMAL, HSSFFont.COLOR_NORMAL, (short)10);//2:字体是否粗体,3:字体颜色,4:字体大小
CellStyle cellStyle = PoiExcelUtil.createBorderCellStyle(wb, HSSFColor.BLACK.index, HSSFColor.WHITE.index, HSSFCellStyle.ALIGN_CENTER, font);
HSSFRow row = PoiExcelUtil.createRow(sheet, 0, 250);//第一行
HSSFCell cell = null;
Font titleFont = PoiExcelUtil.createFont(wb, HSSFFont.BOLDWEIGHT_BOLD, HSSFFont.COLOR_NORMAL, (short)10);//2:字体是否粗体,3:字体颜色,4:字体大小
CellStyle titleCellStyle = PoiExcelUtil.createBorderCellStyle(wb, HSSFColor.BLACK.index, HSSFColor.WHITE.index, HSSFCellStyle.ALIGN_CENTER, titleFont);
for (int j=0;j<titleArray.length;j++){
cell = PoiExcelUtil.createCell(row, j, titleCellStyle);
cell.setCellValue(titleArray[j]);
cell.setCellStyle(titleCellStyle);
}
for (int i=0;i<dateList.size();i++){
row = PoiExcelUtil.createRow(sheet, i+1, 250);
String [] dateArray = dateList.get(i);
for (int j=0;j<dateArray.length;j++){
cell = PoiExcelUtil.createCell(row, j, cellStyle);
cell.setCellValue(dateArray[j]);
cell.setCellStyle(cellStyle);
}
}
String fileNameStr = path+"/"+orderDate+"/"+fileName+".xls";
PoiExcelUtil.writeWorkbook(wb, fileNameStr);
return true;
}else{
log.error("当前数据为空,不能生成"+fileName+CommonUtil.dateConvert(new Date(), "yyyy-MM-dd")+".xls");
return false;
}
} catch (Exception e) {
log.error("生成excel过程中发生异常,异常文件:"+fileName+CommonUtil.dateConvert(new Date(), "yyyy-MM-dd")+".xls",e);
return false;
}
}