public String innOrderExport(HttpServletRequest request,HttpServletResponse response){
try {
Map params=ReflectUtil.transToMAP(request.getParameterMap());
//导出excerl
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
List<HashMap<String,Object>> result = sql查询结果;
} catch (IOException e) {
e.printStackTrace();
}
byte[] content = os.toByteArray();
InputStream is = new ByteArrayInputStream(content);
// 设置response参数,可以打开下载页面
response.reset();
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="+ new String(("客栈订单" + ".xls").getBytes(), "iso-8859-1"));
ServletOutputStream out = response.getOutputStream();
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(is);
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
} catch (final IOException e) {
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
return null;
} catch (Exception e) {
System.out.println(e.getMessage());
return null;
}
}
public static HSSFWorkbook export(List<HashMap<String, Object>> list){
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("客栈订单");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("顺序号");
cell.setCellStyle(style);
cell = row.createCell((short) 1);
cell.setCellValue("订单号");
cell.setCellStyle(style);
cell = row.createCell((short) 2);
cell.setCellValue("支付时间");
cell.setCellStyle(style);
cell = row.createCell((short) 3);
cell.setCellValue("业务类型");
cell.setCellStyle(style);
cell = row.createCell((short) 4);
cell.setCellValue("入店时间");
cell.setCellStyle(style);
cell = row.createCell((short) 5);
cell.setCellValue("离店时间");
cell.setCellStyle(style);
cell = row.createCell((short) 6);
cell.setCellValue("房间名称");
cell.setCellStyle(style);
cell = row.createCell((short) 7);
cell.setCellValue("客户姓名");
cell.setCellStyle(style);
cell = row.createCell((short) 8);
cell.setCellValue("订单金额");
cell.setCellStyle(style);
cell = row.createCell((short) 9);
cell.setCellValue("客户支付金额");
cell.setCellStyle(style);
cell = row.createCell((short) 10);
cell.setCellValue("客栈名称");
cell.setCellStyle(style);
// 第五步,写入实体数据 实际应用中这些数据从数据库得到,
for (int i = 0; i < list.size(); i++)
{
row = sheet.createRow((int) i + 1);
HashMap<String, Object> map = list.get(i);
// 第四步,创建单元格,并设置值
row.createCell((short) 0 ).setCellValue(i + 1);
row.createCell((short) 1 ).setCellValue(map.get("innOrderId")+"");
row.createCell((short) 2 ).setCellValue(map.get("payTime")+"");
row.createCell((short) 3 ).setCellValue("客栈订单");
row.createCell((short) 4 ).setCellValue(map.get("checkInDate")+"");
row.createCell((short) 5 ).setCellValue(map.get("checkOutDate")+"");
row.createCell((short) 6 ).setCellValue(map.get("roomName")+"");
row.createCell((short) 7 ).setCellValue(map.get("contacts")+"");
row.createCell((short) 8 ).setCellValue(map.get("innOrderTotalPrice")+"");
row.createCell((short) 9 ).setCellValue(map.get("payMoney")+"");
row.createCell((short) 10).setCellValue(map.get("innName")+"");
cell = row.createCell((short) 6);
sheet.autoSizeColumn(( short ) i );
}
return wb;
}