Java POI Excel 표 내 보 내기 및 다운로드

5425 단어 Java
개발 프로젝트 에 서 는 Excel 표 내 보 내 기 를 요구 하 는 경우 가 많 습 니 다. 인터넷 에서 많은 검색 을 했 고 마지막 에 기능 을 실 현 했 습 니 다. 이에 기록 합 니 다.
프론트 jsp 페이지 는 ajax 로 전송 되 었 습 니 다.
4. 567913. 그리고 controller 에서 자바 코드.
//导出数据--表格
function exportLabType(){
	//选择要导出的数据
	var array = new Array();
	var names = document.getElementsByName("one");
	for(var i=0;i";
		//店铺名称
		var shopperName = smallBoxs.eq(i).parent().siblings().eq(1).text().trim();
		shopperName = encodeURIComponent(shopperName);
		if(shopperName == ""){
			shopperName="-";
		}
		paramStr += shopperName+">";
		//开店时间
		var applytime = smallBoxs.eq(i).parent().siblings().eq(2).text().trim();
		if(applytime == ""){
			applytime="-";
		}
		paramStr += applytime+">";
		//到期时间 
		var endTime = smallBoxs.eq(i).parent().siblings().eq(3).text().trim();
		if(endTime == ""){
			endTime="-";
		}
		paramStr += endTime+">";
		//运营状态
		var status = smallBoxs.eq(i).parent().siblings().eq(4).text().trim();
		status = encodeURIComponent(status);
		if(status == ""){
			status="-";
		}
		paramStr += status+">";
		//账户余额
		var settleBalance = smallBoxs.eq(i).parent().siblings().eq(5).text().trim();
		if(settleBalance == ""){
			settleBalance="-";
		}
		paramStr += settleBalance+">";
		//详细地址
		var shopperAddress = smallBoxs.eq(i).parent().siblings().eq(6).text().trim();
		shopperAddress = encodeURIComponent(shopperAddress);
		if(shopperAddress == ""){
			shopperAddress="-";
		}
		paramStr += shopperAddress+"!";	
	}
	$.ajax({
		url:"exportSupplierExcel.action",
		type:"post",
		//dataType: "json",
		async:false,
		cache: !0,
		data:{"paramStr":paramStr},
		success: function() {
			window.location.href="excelRead.jsp";
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
         	alert("导出表格失败,请稍后再试!");
            //alert(XMLHttpRequest.status,XMLHttpRequest.readyState,textStatus);
       	} 
	});	
}

여기까지 데 이 터 를 엑셀 시트 로 내 보 내 는 것 (Excel 은 tomcat 에 임시로 저 장 된 docs 폴 더) 을 실현 한 다음 Excel 을 다운로드 합 니 다.다운 로드 는 form 에 제출 해 야 합 니 다.
@RequestMapping("exportSupplierExcel")
	public void exportSupplierExcel(HttpServletRequest request,HttpServletResponse response) throws IOException {
		try{
			String docsPath = request.getSession().getServletContext().getRealPath("docs");
			String fileName = System.currentTimeMillis() + ".xls";
			String filePath = docsPath + FILE_SEPARATOR + fileName;
			
			ExportExcel ex = new ExportExcel();  
		    String[] headers = { "会员账号","店铺名称","开店时间","到期时间","运营状态","账户余额","详细地址"};
		    List dataset = new ArrayList();  
		    try {  
		    	SupplierExcel po = null;
				String paramStr = request.getParameter("paramStr");
				if(StringUtil.isNotEmpty(paramStr)){
					String[] arr1 = paramStr.split("!");
					for(int i=0;i");
						String tele = temp[0];
						po.setTele(tele);
						String shopperName = temp[1];
						shopperName = java.net.URLDecoder.decode(shopperName,"utf-8");
						po.setShopperName(shopperName);
						String applytime = temp[2];
						po.setApplytime(applytime);
						String endTime = temp[3];
						po.setEndTime(endTime);
						String status = temp[4];
						status = java.net.URLDecoder.decode(status,"utf-8");
						po.setStatus(status);
						String settleBalance = temp[5];
						po.setSettleBalance(settleBalance);
						String shopperAddress = temp[6];
						shopperAddress = java.net.URLDecoder.decode(shopperAddress,"utf-8");
						po.setShopperAddress(shopperAddress);
						
						dataset.add(po);
					}
					OutputStream out = new FileOutputStream(filePath);
					ex.exportExcel2(headers, dataset, out);  
					out.close();  
					System.out.println("excel导出成功!");  
					//把导出的Excel临时存放的路径放到session里,方便下载 
					HttpSession session = request.getSession();
					session.setAttribute("filePath", filePath);
				}
		    } catch (FileNotFoundException e) {  
		        e.printStackTrace();  
		    } catch (IOException e) {  
		        e.printStackTrace();  
		    }
		}catch(Exception e){
			e.printStackTrace();
		}
	}



이로써 엑셀 표 내 보 내기 가 완료 되 었 습 니 다. 다음은 호출 할 도구 클래스 입 니 다.
@RequestMapping("getFile")
	public void getFile(HttpServletRequest request,HttpServletResponse response) throws IOException{
		HttpSession session = request.getSession();
		String filePath = session.getAttribute("filePath").toString();
		ExportExcel.download(filePath, response);
	}

참고 블 로그:http://blog.csdn.net/evangel_z/article/details/7332535

좋은 웹페이지 즐겨찾기