java中需要导入poi包
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("交易记录统计分析");
HSSFRow row = sheet.createRow((int) 0);
HSSFCell title_cell = row.createCell(0);
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
title_cell.setCellValue("用户交易历史记录");
sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 10));
title_cell.setCellStyle(style);
row = sheet.createRow((int) 2);
String[] excelHeader = { "编号", "用户名称", "交易前金额", "交易前可用金" , "交易金额", "交易后可用金", "交易后金额", "交易时间", "交易类型", "交易标识", "交易ID"};
for (int i = 0; i < excelHeader.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(excelHeader[i]);
cell.setCellStyle(style);
sheet.autoSizeColumn(i);
}
int i = 3;
for(Trade trade:tradeList) {
dealSearchTrade(trade);
row = sheet.createRow(i);
i = i + 1;
double presummoney = null == trade.presummoney ? 0.0 : Double.parseDouble(String.valueOf(trade.presummoney));
double prekymoney = null == trade.prekymoney ? 0.0 : Double.parseDouble(String.valueOf(trade.prekymoney));
double trademoney = null == trade.trademoney ? 0.0 : Double.parseDouble(String.valueOf(trade.trademoney));
double endkymoney = null == trade.endkymoney ? 0.0 : Double.parseDouble(String.valueOf(trade.endkymoney));
double endsummoney = null == trade.endsummoney ? 0.0 : Double.parseDouble(String.valueOf(trade.endsummoney));
User myUser = userService.selectUserById(trade.user_id);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(trade.tradetime);
row.createCell(0).setCellValue(null == trade.no ? "N/A" : trade.no);
row.createCell(1).setCellValue(null == myUser.mobile_phone ? "N/A" : myUser.mobile_phone);
row.createCell(2).setCellValue(presummoney);
row.createCell(3).setCellValue(prekymoney);
row.createCell(4).setCellValue(trademoney);
row.createCell(5).setCellValue(endkymoney);
row.createCell(6).setCellValue(endsummoney);
row.createCell(7).setCellValue(dateString);
row.createCell(8).setCellValue(null == trade.trade_type ? "N/A" : trade.trade_type);
row.createCell(9).setCellValue(null == trade.trade_mark ? "N/A" : trade.trade_mark);
row.createCell(10).setCellValue(null == trade.trade_id ? "N/A" : trade.trade_id);
}
sheet.autoSizeColumn(0);
sheet.autoSizeColumn(1);
sheet.autoSizeColumn(2);
sheet.autoSizeColumn(3);
sheet.autoSizeColumn(4);
sheet.autoSizeColumn(5);
sheet.autoSizeColumn(6);
sheet.autoSizeColumn(7);
sheet.autoSizeColumn(8);
sheet.autoSizeColumn(9);
sheet.autoSizeColumn(10);
HttpServletResponse response = getContext().getResp();
StringBuffer excelName = new StringBuffer();
excelName.append("用户交易历史记录").append(".xls");
response.setContentType("application/msexcel");
response.setHeader("Content-disposition", "inline;filename=" + new String(excelName.toString().getBytes("gb2312"), "iso8859-1"));
OutputStream ouputStream = response.getOutputStream();
wb.write(ouputStream);
wb.close();
ouputStream.flush();
ouputStream.close();