내 응용 프로그램에서 apache poi 및 JSF 2.0을 사용하여 Excel 형식으로 보고서를 생성합니다.JSF 2.0에서 CSV 파일 생성
코드 Excel을 생성하기 위해 스니핑되었습니다.
final FacesContext facesContext = FacesContext.getCurrentInstance();
final ExternalContext externalContext = facesContext
.getExternalContext();
externalContext.setResponseContentType("application/vnd.ms-excel");
externalContext.setResponseHeader("Content-Disposition",
"attachment; filename=\"Excel Sample");
workbook.write(externalContext.getResponseOutputStream());
facesContext.responseComplete();
당신은 내가 "응용 프로그램/vnd.ms-엑셀"을 추가하고 볼 수 있듯이 - 서버의 MIME 유형입니다. 우리는 MIME 형식을 CSV로 바꿀 수 있는지 궁금해하고 있습니다. 더 이상 보고서 용 Excel 파일을 생성하지 않습니다.
데이터베이스에서 데이터를 가져 와서 HSSF 객체를 사용하여 셀에 쓰는 또 다른 기능이 있습니다. 각 셀에 데이터를 쓴 후에이 메서드 (코드 스 니펫)를 호출합니다. 내가 대신
externalContext.setResponseContentType ("응용 프로그램/vnd.ms-엑셀")를 작성해야 하죠 무엇
;
그래서 확장자가 csv 인 파일을 생성합니다.
당신이 쫓고 복잡 한, 특히, 즉 끝낼 수 있도록 기존 라이브러리를 사용하여 가치가있을 수 있습니다? – Gagravarr
@Gagravarr, 저는 Java를 사용하여 프로그래밍 방식으로 Excel 파일에 쓰고 있습니다. Excel 출력 파일에는 100,000 개의 행이 포함될 수 있습니다. 이로 인해 메모리 부족 예외 문제가 발생할 수 있습니다. 대부분의 모든 기존 Java API가 전체 문서를 RAM에 한꺼번에 작성하려고 시도하고 있습니다. 따라서 우리는 CSV에 직접 데이터를 작성하기로 결정했습니다. mimetype instrcution을 찾고 있는데 CSV를 생성하는 방법은 큰 도움이 될 것입니다. snippet/algo가 도움이 될 수 있습니다. 제 3 자 라이브러리 사용을 자제하고 싶습니다. –
.xls 파일이 아닌 .xlsx 파일을 생성하면 POI의 SXSSF를 사용하여 스트리밍 방식으로 파일을 생성 할 수 있습니다. .xls 파일은 같은 방식으로 생성 할 수 없습니다. 너무 많은 참조가 앞뒤에 형식으로 있습니다. – Gagravarr