Em aplicações reais, é necessário que os dados sejam exportados para o Excel. Além de exportar como está, também existem exportação de paginação, exportação de folhas de paginação e exportação de dados grandes. Para o Excel2003, o número máximo de linhas e colunas de cada folha é limitado. Ao exportar grandes volumes de dados, várias folhas serão divididas por padrão e o Excel2007 não terá esses problemas. Esses métodos de exportação têm diferentes interfaces para implementar nos programas Java:
1. Exportar como está
Exportar como é apenas para exportar o Excel sem visualizar
O código da interface do programa é o seguinte:
outputStream = new FileOutputStream (novo arquivo ("e: //excelExport.xls"); Excelexporter Excel = new Excelexporter (); // export 2007 outputStream = new FileOutputStream (novo arquivo ("e: //excelExport.xlsx"); Excel Excel2007Exporter Excel = novo Excel2007Exporter (); Excel.Export (outputStream, RWorkbook);Imagem de reprodução:
2. Exportação de paginação
Exportação de paginação. Se o modelo de relatório for paginado, ele será exportado na forma de resultados da paginação e títulos duplicados etc. também serão repetidos.
O código da interface do programa é o seguinte:
outputStream = new FileOutputStream (novo File ("e: //pageExcelExport.xls"); PageExcelExporter Page = novo PageExcelExporter (relatórios.GetPaperSettingListFromWorkbook (RWWorkbook)); // export 2007 outputStream = new FileOutputStream (novo arquivo ("e: //pageExcexport.xlsx")); Excel PageExcel2007Exporter Página = novo PageExcel2007Exporter (reportutils.getPaperSettingListFromworkbook (RWorkbook)); Page.Export (outputStream, RWorkbook);Imagem de reprodução:
3. Páginas de exportação em folhas
Quando a página é exportada, cada página do resultado do relatório é salva em um arquivo do Excel.
O código é o seguinte:
outputStream = new FileOutputStream (new File ("e: //pagesheetexcexport.xls")); Folha de PagetosheeTexceLExporter = novo PagetHeeTexceLexporter (Relatórios.getPaperSettingListFromworkbook (rorkbook)); // export 2007 Versão outputStream = new FileOutputStream (new File ("e: //pagesheetexcexport.xlsx")); Excel pageToHeetexcel2007Exporter Sheet = novo PagetHoTheEtexcel2007Exporter (relatário.getPaperSettingListFromWorkbook (RWWorkbook); Sheet.Export (outputStream, RWorkbook);Imagem de reprodução:
4. Exportação de grande volume de dados
Isso é mais comum, por exemplo, um arquivo do Excel com 50000 comportamento
O código é o seguinte:
outputStream = new FileOutputStream (new File ("e: //largeExcelExport.zip"); LargedatapeageExcelExporter grande = new LargedataPageExceLexporter (relatário.getPaperSettingListFromWorkbook (rorkbook), true); // export 2007 Versão outputStream = new FileOutputStream (new File ("e: //largeexcexport.xlsx")); Excel LargedataPageExcel2007Exporter Large = new LargedataPageExcel2007Exporter (Relatórios.getPaperSettingListFromWorkbook (rorkbook), true); grande.export (outputStream, RWorkbook);Ao exportar relatórios de grandes volumes de dados, podem ocorrer as duas situações a seguir:
1. Se a exportação for bem -sucedida, os dados serão exibidos em várias folhas;
2. Dois. Falha na exportação e o conteúdo exportado do Excel é inválido. Existem duas razões principais para a situação acima:
4.1 Exportação de relatórios de volume de dados grandes sem mecanismo de linha ativado
Sem o mecanismo de linha ativado, duas situações também ocorrerão: a exportação será bem -sucedida se o servidor puder suportá -lo e a exportação falhará se o servidor não puder suportá -lo. Vamos dar uma olhada nos resultados abaixo:
4.1.1 O servidor está dentro do escopo de
O intervalo aceitável é: a quantidade de dados é grande, excedendo o número máximo de linhas do Excel, mas não muito, muito grande, como 100.000 peças, e os dados não são complicados e podem ser exportados normalmente se a memória for suficiente e a rede não for interrompida. Ao exportar, os dados que excedem a linha ou coluna máximo do Excel serão exibidos na próxima folha. No entanto, o Excel tem um limite para o número de linhas e colunas. Por exemplo, o Excel 2003 possui um limite máximo de 65536 linhas, e o limite máximo do número de colunas é de 256 colunas.
4.1.2 O servidor não pode suportar
O intervalo insuportável é que o volume de dados é grande e muito grande, como centenas de milhares ou milhões ou até mais, e a falha de exportação pode ocorrer devido a restrições de memória. Quando o resultado é exportado, o conteúdo do Excel que não exporta é inválido.
Para esses dois resultados de exportação, o principal motivo é a quantidade de volume de dados e complexidade de dados (número de colunas). Haverá um ponto crítico sem um motor em linha. Quando a exportação estiver abaixo do ponto crítico, o conteúdo exportado terá várias folhas; caso contrário, a exportação falhará e o conteúdo será inválido. Portanto, para grandes relatórios de volume de dados, geralmente é exibido usando um mecanismo de linha. Nesse caso, a exportação do Excel é sempre bem -sucedida. Quando os relatórios de volume de grandes dados habilitados para mecanismo de linha são exportados para o Excel, eles são divididos em vários arquivos .xls e são transferidos para o cliente no formato de um arquivo de embalagem compactado.
4.2 Ativar a exportação de mecanismo de linha de relatórios de volume de dados grandes
Para relatórios de volume de dados grandes, geralmente é apresentado usando um mecanismo de linha e, nesse caso, a exportação do Excel é sempre bem -sucedida. Porque ao exportar o Excel com o relatório de volume de dados de grande porte do mecanismo de linha, ele é dividido em vários arquivos .xls e é transferido para o cliente no formato de um arquivo de pacote compactado.
Por exemplo, um grande relatório de volume de dados possui 100w linhas de dados e um mecanismo de linha é configurado e 30 linhas são exibidas por página. O resultado exportado será 41 Excel, o primeiro 40 Excel será 24990 linhas cada, o último Excel será 400 linhas e o 41 Excel será compactado em pacotes ZIP e enviado ao cliente para download.
O conteúdo acima é quatro maneiras de exportar o Excel para a ferramenta de relatório Java Finereport. Espero que seja útil para todos!