我需要将导出的数据以字符串或excel格式存储到某个文件中,我想使用电子邮件发送该文件。
我当前的导出声明是
<p:dataExporter type="xls" target="tableWbTicketold" fileName="TicketOldReport" />
答案 0 :(得分:0)
你有两种选择:
使用postProcessor:<p:dataExporter type="xls" target="tbl" fileName="cars" postProcessor="#{tableBean.postProcessXLS}"/>
。
您可以通过电子邮件发送tableBean.postProcessXLS
内的工作簿,但这不会阻止正常流程(文件下载对话框)
编写自己的DataExporter
自定义组件,扩展PF类并覆盖:DataExporter.processAction
,ExcelExporter.export
<强>更新强>
这样:
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();
}
}