実際のアプリケーションでは、多くの場合、Excelにエクスポートする必要があります。 AS-ISの輸出に加えて、ページネーションエクスポート、ページネーションシートの輸出、大規模なデータエクスポートもあります。 Excel2003の場合、各シートの行と列の最大数は制限されています。大量のデータボリュームをエクスポートすると、デフォルトで複数のシートが分割され、Excel2007にはそのような問題はありません。これらのエクスポート方法には、Javaプログラムに実装するための異なるインターフェイスがあります。
1。現状のままエクスポート
プレビューせずにExcelをエクスポートするためだけにエクスポートします
プログラムインターフェイスコードは次のとおりです。
outputStream = new FileOutputStream(new File( "e://excelexport.xls")); excelexporter excel = new excelexporter(); // Export 2007 OutputStream = new FileOutputStream(new File( "e://excelexport.xlsx")); Excel excel2007exporter excel = new excel2007exporter(); Excel.Export(outputStream、rworkbook);
複製画像:
2。ページネーションエクスポート
ページネーションエクスポート。レポートテンプレートがパジネートされている場合、ページネーション結果の形でエクスポートされ、タイトルなども繰り返されます。
プログラムインターフェイスコードは次のとおりです。
outputStream = new FileOutputStream(new File( "e://pageexcelexport.xls")); PageExcelExporterページ= new PageExcelExporter(Reportutils.GetPaperSettingListFromWorkBook(rworkbook)); // Export 2007 OutputStream = new FileOutputStream(new File( "e://pageexcelexport.xlsx")); excel pageexcel2007exporterページ= new PageExcel2007Exporter(resportutils.getPaperSettingListFromWorkbook(rworkbook)); page.export(outputStream、rworkbook);
複製画像:
3。シートでページをエクスポートします
ページがエクスポートされると、レポート結果の各ページはExcelファイルに保存されます。
コードは次のとおりです。
outputStream = new FileOutputStream(new File( "e://pagesheetexcelexport.xls")); pagetosheetexcelexporterシート= new pagetosheetexcelexporter(resportils.getPaperSettingListFromWorkbook(rworkbook)); // export 2007バージョンoutputStream = new fileoutputStream(new file( "e://pagesheetexcelexport.xlsx")); excel pagetosheetexcel2007exporterシート= new pagetosheetexcel2007exporter(Reportutils.getPaperSettingListFromWorkBook(rworkbook)); Sheet.Export(outputStream、rworkbook);
複製画像:
4。大規模なデータボリュームのエクスポート
これは、たとえば50000の動作を持つExcelファイルなど、より一般的です
コードは次のとおりです。
outputStream = new fileoutputStream(new File( "e://largeexcelexport.zip")); largedatapageexcelexporter arge = new largedatapageexcelexporter(reportutils.getPaperSettingListFromWorkbook(rworkbook)、true); // export 2007バージョンoutputStream = new fileoutputStream(new file( "e://largeexcelexport.xlsx")); excel largedatapageexcel2007exporter large = new largedatapageexcel2007exporter(reportutils.getPaperSettingListFromWorkBook(rworkbook)、true); large.export(outputStream、rworkbook);
大量のデータ量からレポートをエクスポートする場合、次の2つの状況が発生する可能性があります。
1.エクスポートが成功した場合、データは複数のシートに表示されます。
2。2。エクスポートが失敗し、エクスポートされたExcelコンテンツが無効です。上記の状況には2つの主な理由があります。
4.1ラインエンジンが有効になっていない大規模なデータボリュームレポートのエクスポート
ラインエンジンが有効になっていないと、2つの状況も発生します。サーバーが耐えることができればエクスポートが成功し、サーバーが耐えられない場合はエクスポートが失敗します。以下の結果を見てみましょう。
4.1.1サーバーは範囲内にあります
許容範囲は次のとおりです。データの量は大きく、Excelの最大列数を超えていますが、100,000個など、それほど大きくはありません。データは複雑ではなく、メモリが十分でネットワークが中断されない場合は通常エクスポートできます。エクスポートすると、Excelの最大行または列を超えるデータが次のシートに表示されます。ただし、Excelには行と列の数に制限があります。たとえば、Excel 2003の最大制限は65536行で、列数の最大制限は256列です。
4.1.2サーバーは耐えられません
耐え難い範囲は、数十万またはそれ以上など、データ量が大きく非常に大きいことであり、メモリ制限により輸出の故障が発生する可能性があることです。結果がエクスポートされると、エクスポートに失敗したExcelの内容が無効です。
これら2つのエクスポート結果について、主な理由は、データの量とデータの複雑さ(列の数)の量です。行エンジンなしで重要なポイントがあります。エクスポートが重要なポイントを下回ると、エクスポートされたコンテンツに複数のシートがあり、それ以外の場合はエクスポートが失敗し、コンテンツが無効になります。したがって、大規模なデータボリュームレポートの場合、通常、行エンジンを使用して表示されます。この場合、Excelの輸出は常に成功します。 Line Engine対応の大きなデータボリュームレポートがExcelにエクスポートされると、複数の.xlsファイルに分割され、圧縮パッケージファイルの形式でクライアントに転送されます。
4.2大規模なデータボリュームレポートのラインエンジンエクスポートを有効にする
大規模なデータボリュームレポートの場合、通常は行エンジンを使用して提示され、この場合、Excelのエクスポートは常に成功します。 Line Engineの大規模なデータボリュームレポートでExcelをエクスポートすると、複数の.xlsファイルに分割され、圧縮パッケージファイルの形式でクライアントに転送されるためです。
たとえば、大規模なデータボリュームレポートには100Wのデータがあり、行エンジンがセットアップされ、ページごとに30行が表示されます。エクスポートされた結果は41 Excel、最初の40のExcelはそれぞれ24990行、最後のExcelは400行、41 ExcelはZIPパッケージに圧縮され、クライアントにアップロードされてダウンロードされます。
上記のコンテンツは、Java FinereportレポートツールのExcelをエクスポートする4つの方法です。私はそれが誰にでも役立つことを願っています!