Response方式导出Excel

本文提供了一段Java代码示例,展示如何从分页数据中导出Excel文件。该方法利用了Apache POI库创建Excel工作簿,并通过HTTP响应将其发送给客户端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一段破代码老忘。。。

  	protected void downloadPaginExcel(HttpServletRequest request, HttpServletResponse response,Pagin<?> pagin,String fileName) throws Exception{
    	String columnObject = getParameter("columnObject");//字段对应关系
    	JSONArray myJsonArray =JSONArray.parseArray(columnObject);
    	HSSFWorkbook wb = new HSSFWorkbook(); 
    	HSSFSheet sheet = wb.createSheet("工作表1");  
    	sheet.setDefaultColumnWidth(18);  
    	sheet.setDefaultRowHeightInPoints(20);  
    	HSSFRow row = sheet.createRow((int) 0);
        for(int i=0;i<myJsonArray.size();i++){
    		JSONObject newColumn = (JSONObject) myJsonArray.get(i);
    		String colName = (String) newColumn.get("title");
    		HSSFCell cell = row.createCell(i);
        	cell.setCellValue(colName);
    	}
        
        for(int i=0;i< pagin.getResultList().size();i++){
        	Map<String,Object> newMap=ConvertObjToMap(pagin.getResultList().get(i));
        	row = sheet.createRow((int) i + 1); 
        	for(int j=0;j<myJsonArray.size();j++){
        		JSONObject newColumn = (JSONObject) myJsonArray.get(j);
        		String col = (String) newColumn.get("dataIndex");
        		String valueNew =String.valueOf(newMap.get(col)) ;
        		row.createCell(j).setCellValue(valueNew);
        	}
        }
        String newFileName=fileName+".xls";
    	response.setContentType("application/vnd.ms-excel");   
        response.setHeader("Content-disposition", "attachment;filename=" + java.net.URLEncoder.encode(newFileName, "UTF-8"));   
        OutputStream ouputStream = response.getOutputStream();   
        wb.write(ouputStream);
        ouputStream.flush();   
        ouputStream.close(); 
    }

 

转载于:https://my.oschina.net/u/2391658/blog/834778

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值