13. Use the apache package to complete the exacle package and download it

Use the apache package to complete the exacle package and download it

import org.apache.poi.xssf.usermodel.*;

public void exportExcel(String headerData, String data, HttpServletResponse response) {
    //表头信息
    JSONArray jHeaderArr = new JSONArray(headerData);
    //数据信息
    JSONArray dataArray = new JSONArray(data);
    XSSFWorkbook wb = new XSSFWorkbook();
    XSSFSheet sheet = wb.createSheet("Sheet1");
    XSSFRow row = sheet.createRow(0);//表头
    XSSFCellStyle style = wb.createCellStyle();
    style.setAlignment(XSSFCellStyle.ALIGN_CENTER);//创建一个居中格式
            
    //获取所有名称
    List<String> list = new ArrayList<String>();
    for (int i = 0; i < jHeaderArr.length(); i++) {
        XSSFCell cell = row.createCell(i);
        JSONObject jHeader = new JSONObject(jHeaderArr.get(i).toString());
        cell.setCellValue(jHeader.getString("cname").toString());
        list.add(jHeader.getString("ename").toString());
        cell.setCellStyle(style);
    }    
    for (int i = 0; i < dataArray.length(); i++) {
        JSONObject jo = dataArray.getJSONObject(i);
        row= sheet.createRow(i+1);
        for (int j = 0; j < list.size(); j++) {
        	row.createCell(j).setCellValue(jo.getString(list.get(j)));
        }
    }
    try {
        OutputStream out = response.getOutputStream();
        response.reset();
        Date now = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");		
        String checkTime = dateFormat.format(now);
        String fileName = "数据下载(" + checkTime + ").xlsx";
        response.setHeader("Content-Disposition","attachment;filename="+ new String(fileName.getBytes("utf-8"),"ISO-8859-1"));
        response.setContentType("application/msexcel");
        wb.write(out);
        out.close();
        wb.close();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }     
}

Guess you like

Origin blog.csdn.net/yang134679/article/details/131714143