java导出excel表格

1.http://mvnrepository.com/找到需要的包

java导出excel表格_第1张图片

2,封装导出数据

3,导出excel表格

/**
     * @Description 

导出售票订单

* @author:spwang * @Version:1.0 * @date 2017年10月22日 下午3:26:25 * @email [email protected] * page(需要导出的数据) */
@Override public void exportTicketOrderExcel(Page page, HttpServletResponse response) { // 生成文件名称 String filename = "ticketOrder-" + DateUtil.dateToString(new Date(), "yyyyMMddHHmmss") + ".xls"; // 获取导出信息列表 List resultList = page.getResultList(); Workbook book = new HSSFWorkbook(); ServletOutputStream outputStream = null; try { // 创建第一个sheet页 Sheet sheet = book.createSheet("票务订单"); // 生成第一行 Row row = sheet.createRow(0); // 给第一行赋值 row.createCell(0).setCellValue("渠道名称"); row.createCell(1).setCellValue("订单状态"); row.createCell(2).setCellValue("订单编号"); row.createCell(3).setCellValue("姓名"); row.createCell(4).setCellValue("电话"); row.createCell(5).setCellValue("订单来源"); row.createCell(6).setCellValue("项目"); row.createCell(7).setCellValue("项目场次"); row.createCell(8).setCellValue("张数"); row.createCell(9).setCellValue("价格"); row.createCell(10).setCellValue("订单金额"); row.createCell(11).setCellValue("支付方式"); row.createCell(12).setCellValue("下单时间"); row.createCell(13).setCellValue("支付时间"); row.createCell(14).setCellValue("配送方式"); row.createCell(15).setCellValue("订单创建人"); row.createCell(16).setCellValue("订单处理人"); row.createCell(17).setCellValue("持续时间"); sheet.setColumnWidth(0, 10 * 2 * 512); // 生成第二行之后的内容 int i = 1; for (Object object : resultList) { SalesOrderDto orderDto = (SalesOrderDto) object; // 创建一行 Row row2 = sheet.createRow(i++); row2.createCell(0).setCellValue(orderDto.getOrgName()); row2.createCell(1).setCellValue(orderDto.getOrderStatusName()); row2.createCell(2).setCellValue(orderDto.getOrderCode()); row2.createCell(3).setCellValue(orderDto.getMemberName()); row2.createCell(4).setCellValue(orderDto.getMemberPhone()); row2.createCell(5).setCellValue(orderDto.getOrderSourceName()); if (orderDto.getSalesOrderDetailList().size() > 0) { row2.createCell(6).setCellValue(orderDto.getSalesOrderDetailList().get(0).getProjectName()); row2.createCell(7).setCellValue(orderDto.getSalesOrderDetailList().get(0).getShowSessions()); int sheettotal = 0; for (int k = 0; k < orderDto.getSalesOrderDetailList().size(); k++) { String sheets = orderDto.getSalesOrderDetailList().get(k).getSheets(); if (StringUtils.isNotBlank(sheets)) { int parseInt = Integer.parseInt(sheets); sheettotal += parseInt; } } row2.createCell(8).setCellValue(sheettotal); } DecimalFormat df = new DecimalFormat("#0.00"); if (orderDto.getSalesOrderDetailList().size() > 0) { row2.createCell(9) .setCellValue("¥ " + df.format(orderDto.getSalesOrderDetailList().get(0).getPrice())); } row2.createCell(10).setCellValue("¥ " + df.format(orderDto.getActuallyPaidAmt())); if (orderDto.getSalesPayDetailList().size() > 0) { row2.createCell(11).setCellValue(orderDto.getSalesPayDetailList().get(0).getPayWayName()); } row2.createCell(12) .setCellValue(DateUtil.dateToString(orderDto.getCreateTime(), "yyyy-MM-dd HH:mm:ss")); if (orderDto.getPayTime() != null) { row2.createCell(13) .setCellValue(DateUtil.dateToString(orderDto.getPayTime(), "yyyy-MM-dd HH:mm:ss")); } row2.createCell(14).setCellValue(orderDto.getDeliveryWayName()); row2.createCell(15).setCellValue(orderDto.getUserName() + "|" + orderDto.getcName()); row2.createCell(16).setCellValue(orderDto.getPrintUserName()); if (orderDto.getLastTime() != null && orderDto.getSystemBooking().equals("1") && !orderDto.getOrderStatus().equals("01")) { row2.createCell(17).setCellValue(orderDto.getLastTime()); } } response.setHeader("Content-disposition", "attachment;filename=" + filename); // 写文件 response.setContentType("application/vnd.ms-excel;charset=utf-8"); ByteArrayOutputStream outPut = new ByteArrayOutputStream(); book.write(outPut); byte[] b = outPut.toByteArray(); ByteArrayInputStream inputStream = new ByteArrayInputStream(b); outputStream = response.getOutputStream(); int bytesRead = 0; // 用输出流去写,缓冲输入输出流 byte[] buffer = new byte[8192]; while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { outputStream.write(buffer, 0, bytesRead); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } }

你可能感兴趣的:(java)