머리말
많은 친구들이 실제 작업에서 Excel의 요구 사항으로 데이터를 내보낼 것이라고 생각합니다. 일반적 으로이 작업을 수행하는 두 가지 방법이 있습니다.
먼저 JXL을 사용하여 Excel을 생성 한 다음 서버에 저장 한 다음 페이지가 생성 된 후 파일을 다운로드하십시오.
두 번째는 POI를 사용하여 Excel을 생성 한 다음 스트림을 사용하여 프론트 데스크에 출력하여 직접 다운로드하는 것입니다 (PS : 물론 서버로 생성 한 다음 다운로드 할 수도 있습니다.). 여기서 우리는 두 번째 유형에 대해 논의합니다.
Struts2의 방식
일반적으로 이미 생성 된 hssfworkbook을 InputStream에 넣은 다음 XML 구성 파일로 이동하여 리턴 결과를 스트림으로 변경합니다. 다음과 같이 :
Private void responseData (hssfworkbook wb)는 ioexception {bytearrayoutputstream baos = new BytearRayoutputStream (); WB.WRITE (BAOS); baos.flush (); 바이트 [] aa = baos.tobytearray (); ExcelStream = New ByTearRayInputStream (aa, 0, aa.length); baos.close ();}구성 파일 :
<action name = "ExportXXX"메소드 = "ExportXXX"> <result name = "ExportSuccess"type = "stream"> <param name = "inputname"> 엑셀 스트림 </param> <param name = "contentType"> application/vnd.ms-excel </param> <param name = "contentDisPosition"> affactment; undefaled.dls.dls. </결과> </action>
이렇게하면 파일을 직접 다운로드하기 위해 링크를 클릭 할 목적이 달성됩니다.
SpringMVC 방식
코드를 먼저 게시하십시오.
@requestmapping ( "/Exportxxx.action") public void exportxxx (httpservletrequest request, httpservletresponse response, @requestparam (value = "scheduleid", defaultvalue = "0") int scheduleid) {hssfworkbook wb = credakexcel (scheteexcel); try {response.setheader ( "content-disposition", "첨부 파일; filename = presitionuser.xls"); Response.setContentType ( "Application/Vnd.ms-Excel; charset = utf-8"); outputStream out = response.getOutputStream (); wb.write (out); out.flush (); out.close (); } catch (ioexception e) {e.printstacktrace (); }} 실제로 SpringMVC 및 Struts2는 원칙적으로 동일하지만 Struts2는 파일을 구성하는 방법입니다. 먼저 createExcel() 메소드를 사용하여 Excel을 생성하고 반환하십시오. 마지막으로, response 사용하여 출력 엑셀을 전경에 엑셀하십시오. 이 방법은 일반적이며 Servlet、Struts2 등으로 시도 할 수도 있습니다. response 헤더 정보에서 해당 출력 정보 만 설정하면됩니다.
요약
struts2 또는 springmvc를 사용하든 기본적으로 응답을 사용하는 경우, 응답을 철저히 이해하는 한 사진, 세계, Excel 또는 기타 파일을 다운로드하든 동일합니다.
github 주소 : https://github.com/crossoverjie
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.