是否可以以编程方式存储PrimeFaces导出的数据?

时间:2014-01-17 06:41:12

标签: jsf-2 primefaces

我需要将导出的数据以字符串或excel格式存储到某个文件中,我想使用电子邮件发送该文件。

我当前的导出声明是

 <p:dataExporter  type="xls" target="tableWbTicketold" fileName="TicketOldReport" />

1 个答案:

答案 0 :(得分:0)

你有两种选择:

  1. 使用postProcessor:<p:dataExporter type="xls" target="tbl" fileName="cars" postProcessor="#{tableBean.postProcessXLS}"/>。 您可以通过电子邮件发送tableBean.postProcessXLS内的工作簿,但这不会阻止正常流程(文件下载对话框)

  2. 编写自己的DataExporter自定义组件,扩展PF类并覆盖:DataExporter.processActionExcelExporter.export


  3. <强>更新

    这样:

    public void postProcessXLS(Object document)
    {
        try
        {
            Workbook wb = (Workbook) document;
    
            File file = File.createTempFile("exporter-", ".xls");
    
            FileOutputStream out = new FileOutputStream(file);
            wb.write(out); // or write in mail body
            out.close();
    
            // do what you need with file
    
            file.delete();
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }
    
相关问题