一:導包
這裏是導兩個包,其實導一個就可以了
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
二:代碼
//統計的
@GetMapping("/statistics")
public void statistics(HttpServletResponse response) throws IOException {
OutputStream os = response.getOutputStream();
response.reset();
response.setHeader("Content-disposition", "attachment; filename=" + new String("在線報考.xls".getBytes("GB2312"), "ISO8859-1"));
response.setContentType("application/msexcel");
String[] title = new String[]{
"序號", "姓名", "身份證號", "電話", "方向",
"准考證號", "繳費金額(元)", "支付方式", "訂單號", "支付訂單號",
"支付時間", "考區", "報考專業"};
HSSFWorkbook sheets = new HSSFWorkbook();
HSSFSheet sheet = sheets.createSheet("demo"); //一個表
HSSFRow row = sheet.createRow(0); //第一行
for (int i = 0; i < title.length; i++) {
row.createCell(i).setCellValue(title[i]); //序號
}
//查出已經購買的人
List<String> ids = userMapper.selectAlreadyBuy();
Long num = 1l;
//查出每個人查出他們的訂單號,
for (String id : ids) {
//一個用戶有多個訂單
List<Orders> orders = userMapper.selectOrdersSnById(id);
//查出所有的訂單號,一個訂單號就是一條數據
for (Orders orders1 : orders) {
//查出每個用戶所有購買的課程
List<ProductBuy> buys = userMapper.selectProductBuy(orders1.getOrderSn());
String level = buys.get(0).getStatus().substring(6);//(平面)
String zhuanye = buys.get(0).getStatus().substring(0, 6);// 報考專業
HSSFRow nrow = sheet.createRow(num.intValue()); //第二......三.............行
nrow.createCell(0).setCellValue(num); //序號
nrow.createCell(1).setCellValue(orders1.getMemberName()); //姓名
nrow.createCell(2).setCellValue(orders1.getMemberIdcard()); //身份證號
nrow.createCell(3).setCellValue(orders1.getMemberPhone()); //電話
nrow.createCell(4).setCellValue(level); //方向
nrow.createCell(5).setCellValue(orders1.getOkCard()); //准考證號
nrow.createCell(6).setCellValue(orders1.getActAmount().toString()); //繳費金額
nrow.createCell(7).setCellValue(orders1.getPayStatus().equals("1") ? "支付寶" : "微信"); ////支付方式
nrow.createCell(8).setCellValue(orders1.getOrderSn()); //訂單號
nrow.createCell(9).setCellValue(orders1.getPayOrgSn()); //支付訂單號
nrow.createCell(10).setCellValue(new Date()); //支付時間
nrow.createCell(11).setCellValue(orders1.getCity()); //考區
nrow.createCell(12).setCellValue(zhuanye); //報考專業
num++;
}
}
sheets.write(os);
sheets.close();
}