POI导出Excel报表伪代码
// ============创建HSSFWorkbook============HSSFWorkbook wb = new HSSFWorkbook();
// ============创建HSSFWorkbook============
// ============创建字样============
HSSFFont titleFont = wb.createFont();
titleFont.setFontHeightInPoints((short)20);
titleFont.setBoldweight((short)20);
titleFont.setFontName("黑体");
HSSFFont dateFont = wb.createFont();
dateFont.setFontHeightInPoints((short)12);
dateFont.setFontName("楷体_GB2312");
// ============创建字样============
// ============创建样式============
HSSFCellStyle titleStytle = wb.createCellStyle();
titleStytle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
titleStytle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
titleStytle.setFont(titleFont);
titleStytle.setWrapText(true);
HSSFCellStyle dataStytle = wb.createCellStyle();
dataStytle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
dataStytle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
dataStytle.setBorderRight(HSSFCellStyle.BORDER_THIN);
dataStytle.setBorderTop(HSSFCellStyle.BORDER_THIN);
dataStytle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
dataStytle.setWrapText(true);
HSSFCellStyle dataStytle1 = wb.createCellStyle();
dataStytle1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
dataStytle1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
dataStytle1.setBorderLeft(HSSFCellStyle.BORDER_THIN);
dataStytle1.setBorderRight(HSSFCellStyle.BORDER_THIN);
dataStytle1.setBorderTop(HSSFCellStyle.BORDER_THIN);
dataStytle1.setBorderBottom(HSSFCellStyle.BORDER_THIN);
dataStytle.setWrapText(true);
// ============创建样式============
// ============创建HSSFSheet============
HSSFSheet sheet = wb.createSheet();
sheet.setDisplayGridlines(false);
// ============创建HSSFSheet============
// 标题行
HSSFRow row = sheet.createRow(0);
row.setHeightInPoints(30);
sheet.addMergedRegion(new Region(0,(short)0,0,(short)(titleColumn.length-1)));
HSSFCell cell = row.createCell((short)0);
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(new HSSFRichTextString(title));
cell.setCellStyle(titleStytle);
// 日期行
row = sheet.createRow(1);
row.setHeightInPoints(20);
sheet.addMergedRegion(new Region(1,(short)0,1,(short)(titleColumn.length-1)));
cell = row.createCell((short)0);
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(new HSSFRichTextString(date));
// 表头行
row = sheet.createRow(2);
row.setHeightInPoints(20);
for (int i = 0; i < titleColumnSize.length; i++) {
cell = row.createCell((short)i);
sheet.setColumnWidth((short)i, (short)titleColumnSize);
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(new HSSFRichTextString(titleColumn));
cell.setCellStyle(dataStytle);
}
// 数据行
if(null!=reportDTO){
List creditGroupList = reportDTO.getCreditGroup();
for (Iterator iterator = creditGroupList.iterator(); iterator.hasNext();) {
CreditGroup creditGroup = (CreditGroup)iterator.next();
List creditList = creditGroup.getCreditList();
System.out.println(creditList.size());
for (Iterator iterator2 = creditList.iterator(); iterator2.hasNext();) {
Credit credit = (Credit) iterator2.next();
row = sheet.createRow(sheet.getLastRowNum()+1);
row.setHeightInPoints(20);
for (int i = 0; i < titleColumnSize.length; i++) {
cell = row.createCell((short)i);
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
if(i == 0 ){
cell.setCellValue(new HSSFRichTextString(creditGroup.getGroupID()));
cell.setCellStyle(dataStytle);
}
if(i == 1 ){
cell.setCellValue(new HSSFRichTextString(creditGroup.getGroupName()));
cell.setCellStyle(dataStytle);
}
if(i == 2 ){
cell.setCellValue(new HSSFRichTextString(credit.getCreditName()));
cell.setCellStyle(dataStytle);
}
if(i == 3 ){
cell.setCellValue(new HSSFRichTextString(credit.getGuojianNum()));
cell.setCellStyle(dataStytle);
}
if(i == 4 ){
cell.setCellValue(new HSSFRichTextString(credit.getDuijianNum()));
cell.setCellStyle(dataStytle);
}
if(i == 5 ){
cell.setCellValue(new HSSFRichTextString(credit.getBujianNmu()));
cell.setCellStyle(dataStytle);
}
}
}
sheet.addMergedRegion(new Region(sheet.getLastRowNum()-creditList.size()+1,(short)0,sheet.getLastRowNum(),(short)0));
sheet.addMergedRegion(new Region(sheet.getLastRowNum()-creditList.size()+1,(short)1,sheet.getLastRowNum(),(short)1));
sheet.getRow(sheet.getLastRowNum()-creditList.size()+1).getCell((short)0).setCellStyle(dataStytle1);
sheet.getRow(sheet.getLastRowNum()-creditList.size()+1).getCell((short)1).setCellStyle(dataStytle1);
}
}
response.setHeader("Content-Type", "application/msexcel;charset=GBK");
response.setHeader("Content-Disposition", "attachment;filename=" + new String("Report".getBytes(), "iso-8859-1") + ".xls");
os = response.getOutputStream();
wb.write(os);
页:
[1]