我在我的項目中使用了<p:dataExporter type="xls" target="reportTable" fileName="ExportResult"/>
。我需要一些功能。Overrite dataExporter方法或實現jsf中的懶惰導出
<p:panelGrid columns="1" styleClass="currentReportTablesStyle" style="text-align: center">
<p:commandButton value="Load Data"
id="dataLoaderButton"
ajax="false"
action="#{QCforCCReportBean.LoadReport()}"/>
<h:outputText value="Export to format:"/>
<h:commandLink disabled="#{QCforCCReportBean.isNotAdministrator}">
<p:graphicImage name="/images/xls_file.png" width="24"/>
<p:dataExporter type="xls" target="reportTable" fileName="ExportResult"/>
</h:commandLink>
</p:panelGrid>
當我點擊的commandButton - 「加載數據」的出口數據,從"#{QCforCCReportBean.LoadReport()}"
觸發方法。該方法在參數中有兩個變量:first和pageSize。我設置了這個變量0和50.它工作很酷。我有懶惰和良好的分頁。例如0-50,50-100,100-150等 但是,當我試圖導出數據,觸發了一些方法"#{QCforCCReportBean.LoadReport()}"
但變量是0-87587(或另一個大數字,從表中的所有行)和我的java崩潰與java.lang.OutOfMemoryError: GC overhead limit exceeded
我想重寫方法用於出口數據或修改dataExporter通過部分
我不想出口可見頁面,我想導出所有的數據,但一點PICES,becouse如果我出口的所有數據,我得到了內存不足的錯誤。 – Pavel
那麼你想下載100個xlsx文件?接着?手動合併它們?或者,對數據庫和服務器端的100個查詢將這些添加到塊中的xlsx?那麼,如果你想要後者,那麼就這樣做。查看出口商源代碼並根據您的需求進行調整。如果你有詳細的問題回到那些。現在的問題是'作業'一個 – Kukeltje
不,他想要下載一個包含所有數據的文件。 –