실제 응용 분야에서 데이터는 종종 Excel로 내보내야합니다. AS-IS 내보내기 외에도 페이지 매김 수출, 페이지 매김 시트 수출 및 대규모 데이터 수출도 있습니다. Excel2003의 경우 각 시트의 최대 행 및 열이 제한됩니다. 큰 데이터 볼륨을 내보낼 때 여러 시트가 기본적으로 나뉘며 Excel2007에는 그러한 문제가 없습니다. 이러한 수출 방법에는 Java 프로그램에서 구현할 인터페이스가 다릅니다.
1. 그대로 수출
미리보기없이 Excel을 내보내는 것과 같이 내보내십시오
프로그램 인터페이스 코드는 다음과 같습니다.
outputStream = new FileOutputStream (새 파일 ( "e : //excelexport.xls"); ExcelExporter Excel = New ExcelExporter (); // Export 2007 outputStream = new FileOutputStream (새 파일 ( "e : //excelexport.xlsx"); Excel Excel2007exporter Excel = New Excel2007exporter (); Excel.export (outputStream, rworkbook);
생식 이미지 :
2. Pagination 수출
페이지 매김 수출. 보고서 템플릿이 Paginated 인 경우 Pagination 결과 형태로 내보내며 제목 등도 반복됩니다.
프로그램 인터페이스 코드는 다음과 같습니다.
outputStream = new FileOutputStream (새 파일 ( "e : //pageexcelexport.xls"); pageexcelexporter page = 새로운 pageexcelexporter (reportUtils.getPapersettingListfromworkbook (rworkbook)); // Export 2007 outputStream = new FileOutputStream (새 파일 ( "e : //pageExcelExport.xlsx"); Excel PageExcel2007exporter Page = New PageExcel2007exporter (reportUtils.getPapersettingListfromworkbook (rworkbook)); page.export (outputstream, rworkbook);
생식 이미지 :
3. 시트로 페이지 내보내기
페이지가 내보내면 보고서 결과의 각 페이지가 Excel 파일에 저장됩니다.
코드는 다음과 같습니다.
outputStream = 새 FileOutputStream (새 파일 ( "e : //pagesheetexcelexport.xls"); pagetotheetexcelexporter 시트 = 새로운 pagetosheetexcelexporter (reportutils.getPapersettingListfromworkbook (rworkbook)); // Export 2007 버전 outputStream = 새 FileOutputStream (새 파일 ( "e : //pagesheetexcelexport.xlsx"); Excel Pagetoyeetexcel2007exporter Sheet = New PageTotheCeetExcel2007Exporter (reportUtils.getPapersettingListfromworkbook (Rworkbook)); SETER.EXPORT (OutputStream, rworkbook);
생식 이미지 :
4. 큰 데이터 볼륨의 내보내기
예를 들어 50000 동작이있는 Excel 파일과 같이 더 일반적입니다.
코드는 다음과 같습니다.
outputStream = new FileOutputStream (새 파일 ( "e : //largeexcelexport.zip"); largedatapageexcelexporter large = 새로운 largedatapageexcelexporter (reportUtils.getPapersettingListfromworkbook (rworkbook), true); // Export 2007 버전 outputStream = new FileOutputStream (새 파일 ( "e : //largeexcelexport.xlsx"); Excel largedatapageexcel2007exporter large = new largedatapageexcel2007exporter (reportutils.getPapersettingListfromworkbook (rworkbook), true); large.export (outputStream, rworkbook);
큰 데이터 볼륨에서 보고서를 내보낼 때 다음 두 가지 상황이 발생할 수 있습니다.
1. 내보내기가 성공하면 데이터가 여러 시트로 표시됩니다.
2. 둘. 내보내기가 실패했고 내보낸 Excel 컨텐츠가 유효하지 않습니다. 위 상황에 대한 두 가지 주요 이유가 있습니다.
4.1 라인 엔진이없는 대규모 데이터 볼륨 보고서의 내보내기
라인 엔진이 활성화되지 않으면 두 가지 상황이 발생합니다. 서버가 참을 수있는 경우 내보내기가 성공적이며 서버가 부여 할 수없는 경우 내보내기가 실패합니다. 아래 결과를 살펴 보겠습니다.
4.1.1 서버는의 범위 내에 있습니다
허용되는 범위는 다음과 같습니다. 데이터의 양은 크고 최대 엑셀 행 수를 초과하지만 100,000 조각과 같이 매우 크지 않으며 데이터가 복잡하지 않으며 메모리가 충분하고 네트워크가 중단되지 않으면 정상적으로 내보낼 수 있습니다. 내보내면 다음 시트에 최대 행 또는 Excel 열을 초과하는 데이터가 표시됩니다. 그러나 Excel은 행 및 열 수에 제한이 있습니다. 예를 들어, Excel 2003의 최대 한계는 65536 행이며 열 수의 최대 한계는 256 열입니다.
4.1.2 서버는 참을 수 없습니다
견딜 수없는 범위는 수십만 또는 수백만 이상과 같이 데이터 볼륨이 크고 매우 크며 메모리 제한으로 인해 수출 실패가 발생할 수 있다는 것입니다. 결과가 내보내면 내보내기에 실패한 Excel의 내용이 유효하지 않습니다.
이 두 가지 내보내기 결과의 주된 이유는 데이터 볼륨과 데이터 복잡성 (열 수)의 양입니다. 행 엔진이없는 임계점이 있습니다. 내보내기가 임계점 아래에 있으면 내보낸 컨텐츠에는 여러 시트가 있으면 수출이 실패하고 콘텐츠가 유효하지 않습니다. 따라서 대규모 데이터 볼륨 보고서의 경우 일반적으로 행 엔진을 사용하여 표시됩니다. 이 경우 Excel 내보내기는 항상 성공적입니다. 라인 엔진 지원 대형 데이터 볼륨 보고서가 Excel로 내보내면 여러 .xls 파일로 나뉘어 압축 패키지 파일 형식으로 클라이언트로 전송됩니다.
4.2 대규모 데이터 볼륨 보고서의 라인 엔진 내보내기 활성화
대규모 데이터 볼륨 보고서의 경우 일반적으로 행 엔진을 사용하여 제시 되며이 경우 Excel 내보내기가 항상 성공적입니다. 라인 엔진의 대형 데이터 볼륨 보고서로 Excel을 내보낼 때 여러 .xls 파일로 나뉘어 압축 패키지 파일 형식으로 클라이언트로 전송됩니다.
예를 들어, 대형 데이터 볼륨 보고서에는 100W의 데이터 행이 있으며 행 엔진이 설정되고 페이지 당 30 행이 표시됩니다. 내보낸 결과는 41 Excel, 첫 40 Excel은 각각 24990 행, 마지막 Excel은 400 행이며 41 Excel은 ZIP 패키지로 압축되어 클라이언트에 업로드됩니다.
위의 내용은 Java Finereport Report 도구의 Excel을 내보내는 4 가지 방법입니다. 나는 그것이 모두에게 도움이되기를 바랍니다!