programing

JasperReport를 여러 워크시트가 있는 Excel 파일로 내보내려면 어떻게 해야 합니까?

minimums 2023. 7. 7. 18:53
반응형

JasperReport를 여러 워크시트가 있는 Excel 파일로 내보내려면 어떻게 해야 합니까?

고객이 여러 개의 워크시트가 있는 Excel 형식으로 내보내기를 원한다는 보고서가 있습니다.기본적으로 두 쿼리는 동일한 매개 변수를 공유하지만 다른 모든 것은 다릅니다.

jasper-reports에서 여러 워크시트(이상적으로 서로 다른 데이터 소스에서)가 있는 Excel 파일로 내보내는 방법은 무엇입니까?

이 스레드 덕분에 여러 시트로 Excel 내보내기를 만드는 것이 정말 쉬웠습니다.제가 알아낸 것은 다음을 사용할 수 있다는 것입니다.

ArrayList<JasperPrint> list = new  ArrayList<JasperPrint>();
list.add(jp1); list.add(jp2);
exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT_LIST, list);

내보내기 도구는 자동으로 모든 JasperPrint 개체를 사용하여 각 시트를 구성합니다. 또한 Jasper 보고서의 이름(jrxml 파일에 지정된 대로)이 각 시트의 이름으로 사용됩니다.

현재 이 솔루션은 제 지역 프로젝트에서 작동하기 때문에 알려드리려고 합니다.

벨리사리우스 링크 덕분에 우리는 그것을 알아낸 것 같습니다.기본적인 방법은 일반적인 방법으로 각 시트에 대해 JasperPrint 개체를 만드는 것입니다.다음과 같은 이점이 있습니다.

JasperPrint firstWorkSheet = ...;
JasperPrint secondWorkSheet = ...;

JasperPrint 개체는 이 시점에서 이미 데이터 원본으로 채워졌습니다.그러면 다음을 수행합니다.

List<JRPrintPage> pages = new ArrayList<JRPrintPage>(secondWorkSheet.getPages());
int i = firstWorkSheet.getPages().size();
for (int count = 0; count < pages.size(); count++) {
    firstWorkSheet.addPage(i, (JRPrintPage) pages.get(count));
    i++;
}

이것이 설정하는 것은 무엇입니까?i현재 페이지 수에 따라firstWorkSheet(하나여야 함).그리고 나서 그것은 그 페이지들을 순환합니다.secondWorkSheet첫 번째 워크시트에 추가합니다.

당신의 벽보 보고서에서 각 워크시트 jrxml 파일에 대해 한 페이지씩 인쇄하도록 설정되어 있는지 확인하십시오.변경 사항이 있으면 업데이트를 하러 오겠지만, 이것은 효과가 있을 것입니다.

업데이트:

사용해야 할 항목이 검색되었습니다.net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter

대신에

net.sf.jasperreports.engine.export.JRXlsExporter

여러 워크시트로 내보낼 때 문제가 있는 것 같습니다.

또한 jrxml 파일의 설정은 다음과 같습니다.isIgnorePagination요구 사항:

isIgnorePagination="true"

각 jrxml 파일을 단일 페이지로 내보냅니다.

그러면 설정해야 합니다.JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET매개 변수를 true로 설정하여 각 페이지를 별도의 워크시트로 분할합니다.

현재 버전 6.1.1에 따라JRXlsExporter.setParameter사용되지 않습니다.다음으로 대체해야 합니다.JRXlsExporter.setExporterInput따라서 업데이트된 코드는 다음과 같습니다.

ArrayList<JasperPrint> sheets = new ArrayList<JasperPrint>();
sheets.add(sheet1); 
sheets.add(sheet2);

exporter.setExporterInput(SimpleExporterInput.getInstance(sheets));

언급URL : https://stackoverflow.com/questions/3977658/how-do-you-export-a-jasperreport-to-an-excel-file-with-multiple-worksheets

반응형