En aplicaciones reales, a menudo se necesita exportar datos a Excel. Además de exportar AS-IS, también hay exportación de paginación, exportación de hoja de paginación y una gran exportación de datos. Para Excel2003, el número máximo de filas y columnas de cada hoja es limitado. Al exportar grandes volúmenes de datos, múltiples hojas se dividirán de forma predeterminada, y Excel2007 no tendrá tales problemas. Estos métodos de exportación tienen diferentes interfaces para implementar en programas Java:
1. Exportación como está
Exportar como es solo para exportar Excel sin obtener una vista previa
El código de la interfaz del programa es el siguiente:
outputStream = new FileOutputStream (nuevo archivo ("E: //excelexport.xls")); ExcelExporter Excel = new ExcelExporter (); // Exportar 2007 outputStream = new FileOutputStream (nuevo archivo ("e: //excelexport.xlsx")); Excel Excel2007Exporter Excel = new Excel2007Exporter (); Excel.Export (OutputStream, RWorkBook);Imagen de reproducción:
2. Exportación de paginación
Exportación de paginación. Si la plantilla de informe está paginada, se exportará en forma de resultados de paginación, y también se repetirán los títulos duplicados, etc.
El código de la interfaz del programa es el siguiente:
outputStream = new FileOutputStream (nuevo archivo ("E: //pageExcelExport.xls")); PAGEEXCELEXPORTER PÁGINA = new PageExcelExporter (reportUtils.getPapersettingListFromWorkBook (RWorkBook)); // Exportar 2007 outputStream = nuevo FileOutputStream (nuevo archivo ("e: //pageExcelexport.xlsx")); Excel PageExcel2007Exporter Página = nuevo PageExcel2007Exporter (informes informes.getPapersettingListFromWorkBook (RWorkBook)); Page.Export (OutputStream, RWorkBook);Imagen de reproducción:
3. Páginas de exportación en hojas
Cuando se exporta la página, cada página del resultado del informe se guarda en un archivo de Excel.
El código es el siguiente:
OutputStream = nuevo FileOutputStream (nuevo archivo ("E: //pageSheetExcelexport.xls")); PageTosheEtexCelExporter Hoja = nuevo PageTosheExcelCeExporter (reportUtils.getPapersettingListFromWorkBook (RWorkBook)); // Exportar 2007 Versión OutputStream = nuevo FileOutputStream (nuevo archivo ("e: //pageSheetExcelExport.xlsx"); Excel PageTosheExcel2007Exporter Hoja = nuevo PageTosheExcel2007Exporter (informes informes.getPaperSettingListFromWorkBook (RWorkBook)); sheet.export (outputStream, rworkbook);Imagen de reproducción:
4. Exportación de un gran volumen de datos
Esto es más común, por ejemplo, un archivo de Excel con comportamiento de 50000
El código es el siguiente:
outputStream = new FileOutputStream (nuevo archivo ("E: //LargeExcelExport.zip")); LargedAtApageExCelExporter grande = nuevo LargedAtApageExcelExporter (informes informes.getPapersettingListFromWorkBook (RWorkBook), verdadero); // Exportar 2007 Versión OutputStream = nuevo FileOutputStream (nuevo archivo ("e: //largeExcelExport.xlsx"); Excel LargedAtApageExcel2007Exporter grande = nuevo LargedAtApageExcel2007Exporter (reportUtilss.getPapersettingListFromworkBook (RWorkBook), verdadero); grande.export (outputStream, rworkbook);Al exportar informes de grandes volúmenes de datos, pueden ocurrir las siguientes dos situaciones:
1. Si la exportación es exitosa, los datos se mostrarán en múltiples hojas;
2. Dos. La exportación falló y el contenido de Excel exportado no es válido. Hay dos razones principales para la situación anterior:
4.1 Exportación de grandes informes de volumen de datos sin motor de línea habilitado
Sin el motor de línea habilitado, también se producirán dos situaciones: la exportación es exitosa si el servidor puede soportarlo y la exportación fallará si el servidor no puede soportarlo. Echemos un vistazo a los resultados a continuación:
4.1.1 El servidor está dentro del alcance de
El rango aceptable es: la cantidad de datos es grande, excediendo el número máximo de filas de Excel, pero no muy, muy grande, como 100,000 piezas, y los datos no son complicados, y se puede exportar normalmente si la memoria es suficiente y la red no se interrumpe. Al exportar, los datos que exceden la fila o columna máxima de Excel se mostrarán en la siguiente hoja. Sin embargo, Excel tiene un límite en el número de filas y columnas. Por ejemplo, Excel 2003 tiene un límite máximo de 65536 filas, y el límite máximo en el número de columnas es de 256 columnas.
4.1.2 El servidor no puede soportarlo
El rango insoportable es que el volumen de datos es grande y muy grande, como cientos de miles o millones o incluso más, y la falla de exportación puede ocurrir debido a restricciones de memoria. Cuando se exporta el resultado, el contenido de Excel que no pudo exportar no es válido.
Para estos dos resultados de exportación, la razón principal es cuánta volumen de datos y complejidad de datos (número de columnas) son. Habrá un punto crítico sin un motor de fila. Cuando la exportación está por debajo del punto crítico, el contenido exportado tendrá múltiples hojas, de lo contrario, la exportación fallará y el contenido no será válido. Por lo tanto, para los grandes informes de volumen de datos, generalmente se muestra utilizando un motor de fila. En este caso, la exportación de Excel siempre tiene éxito. Cuando los informes de volumen de datos grandes habilitados para el motor de línea se exportan a Excel, se dividen en múltiples archivos .xls y se transfieren al cliente en el formato de un archivo de paquete comprimido.
4.2 Habilitar la exportación de motores de línea de informes de volumen de datos grandes
Para informes de volumen de datos grandes, generalmente se presenta utilizando un motor de fila, y en este caso, la exportación de Excel siempre es exitosa. Porque al exportar Excel con el informe de volumen de datos grande del motor de línea, se divide en múltiples archivos .xls y se transfiere al cliente en el formato de un archivo de paquete comprimido.
Por ejemplo, un informe de volumen de datos grande tiene 100W filas de datos, y se configura un motor de fila y se muestran 30 filas por página. El resultado exportado será de 41 Excel, el primero 40 Excel será de 24990 filas cada una, el último Excel será de 400 filas y el 41 Excel se comprimirá en paquetes zip y se cargará al cliente para descargar.
El contenido anterior es cuatro formas de exportar Excel para la herramienta de informe Java Finereport. ¡Espero que sea útil para todos!