jasperreports 3.5.3은 두 종류의 "Excel 작성자"를 사용할 수 있습니다. 기본적으로 익스포터는 JRXlsExporter
이고, 큰 파일에는 (적어도 Spring MVC 프로젝트에서는) 잘 작동하지 않습니다.
해결 방법은 JExcelAPI를 기반으로하는 다른 내보내기 도구를 사용하는 것입니다. 이 데이터로 문제없이 데이터를 내보낼 수 있습니다.
jasperreport는 Spring MVC 설치에 JExcelAPI를 사용하여 맞춤 클래스를 작성해야합니다. 매우 간단합니다 :
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.export.JExcelApiExporter;
import org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsSingleFormatView;
// this is the view class you'll use, instead of JasperReportsXlsView
public class JasperReportsJExcelApiView extends AbstractJasperReportsSingleFormatView
{
// copied from JasperReportsXlsView
public JasperReportsJExcelApiView()
{
setContentType("application/vnd.ms-excel");
}
protected JRExporter createExporter()
{
// we create the JExcelAPIExporter, not the JRXlsExporter
return new JExcelApiExporter();
}
// copied from JasperReportsXlsView (I think it says: write binary data, not text)
protected boolean useWriter()
{
return false;
}
}
JExcelAPI 2.6 배포에서 classpath에 jxl.jar가 필요합니다.
이것은 3.6.0에서 수정 된 버그입니다. http://jasperforge.org/projects/jasperreports/tracker/view.php?id=4014 –