SpringMvc Excel 인스턴스 코드 내보내기

2641 단어 springmvcexcel
앞말
많은 친구들이 실제 업무에서 데이터를 Excel로 내보내야 한다고 믿는데, 보통 이런 방법은 두 가지가 있다.
첫째, JXL을 사용하여 Excel을 생성한 다음 서버에 저장한 다음 페이지를 생성한 후에 파일을 다운로드합니다.
둘째, POI를 사용하여 Excel을 생성한 다음에 Stream을 사용하여 프론트 데스크톱으로 출력하여 직접 다운로드할 수 있다(ps: 물론 서버에 생성해서 다운로드할 수도 있다).여기서 우리는 두 번째를 토론한다.
Struts2 방식
일반적으로 나는 이미 생성된 HSSFWorkbook을 InputStream에 넣은 다음 xml 프로필에서 결과를 stream으로 되돌리는 방식을 변경합니다.다음과 같습니다.

private void responseData(HSSFWorkbook wb) throws IOException {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  wb.write(baos);
  baos.flush();
  byte[] aa = baos.toByteArray();
  excelStream = new ByteArrayInputStream(aa, 0, aa.length);
  baos.close();
}
구성 파일:

<action name="exportXxx" class="xxxAction" method="exportXxx">
  <result name="exportSuccess" type="stream">
    <param name="inputName">excelStream</param>
    <param name="contentType">application/vnd.ms-excel</param>
    <param name="contentDisposition">attachment;filename="Undefined.xls"</param>
  </result>
</action>
이렇게 하면 링크를 클릭하면 파일을 직접 다운로드할 수 있는 목적을 달성할 수 있다.
SpringMVC 방식
코드 먼저 붙이기:

@RequestMapping("/exportXxx.action")
public void exportXxx(HttpServletRequest request, HttpServletResponse response,
    @RequestParam(value="scheduleId", defaultValue="0")int scheduleId){
  HSSFWorkbook wb = createExcel(scheduleId) ;
  try {
    response.setHeader("Content-Disposition", "attachment; filename=appointmentUser.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 를 이용하여 프론트에 Excel을 출력할 수 있습니다. 이런 방법은 통용되고 시험적으로 사용할 수도 있습니다 Servlet、Struts2 등.우리는 response의 헤더 정보에 해당하는 출력 정보를 설정하기만 하면 된다.
총결산
Struts2를 사용하든 Spring MVC를 사용하든 근본적으로 사용하는 response이기 때문에 response를 이해하면 그림, 월드, 엑셀을 다운로드하든 다른 어떤 파일이든 마찬가지입니다.
GitHub 주소: https://github.com/crossoverJie
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기