二次开发 >> 引擎API >> 导出API

导出API

 
 
 
 

FineReport提供了强大的输入输出功能,所有的这些输入输出的类都在com.fr.report.io包里面。报表的输入指从报表的模板文件(XML格式的)创建WorkBook对象,在报表调用章节已经介绍过。输出则指将报表保存为各种格式文件,FineReport支持将报表保存为cpt、内置数据cpt、Pdf、Excel、Word、Svg、Csv等多种文件格式。
1. 实现原理
我们以Parameter.cpt模板作为被导出模板,参数为报表参数,且设置默认值为华东
1.1 导出成内置数据集模板
导出成内置数据集模板,故名思意是将原模板的数据源根据参数条件查询出结果并转为内置数据集,然后把模板导出,不需要对原模板进行计算(数据列扩展、公式计算等)。
//将未执行模板工作薄导出为内置数据集模板
outputStream = new FileOutputStream(new File("E:\\EmbExport.cpt"));
EmbeddedTableDataExporter EmbExport = new EmbeddedTableDataExporter();
EmbExport.export(outputStream, workbook);
1.2 导出模板文件
我们可以将原模板通过程序编辑后再次导出为模板文件,或者将某一路径下的模板保存至另一路径下。
//将模板工作薄导出模板文件,在导出前您可以编辑导入的模板工作薄,可参考报表调用章节
outputStream = new FileOutputStream(new File("E:\\TmpExport.cpt"));
TemplateExporter TmpExport = new TemplateExporter();
TmpExport.export(outputStream, workbook);
1.3 导出Excel文件
模板工作薄WorkBook执行后为结果工作薄ResultWorkBook,我们可以把计算后的结果导出成Excel文件。
//将结果工作薄导出为Excel文件(此为原样导出)
outputStream = new FileOutputStream(new File("E:\\ExcelExport.xls"));
ExcelExporter ExcelExport = new ExcelExporter(null);
ExcelExport.export(outputStream, workbook.execute(parameterMap));
住:导出Excel的其他格式可以参考文档:Excel导出的多种方式章节
1.4 导出Word文件
//将结果工作薄导出为Word文件
outputStream = new FileOutputStream(new File("E:\\WordExport.doc"));
WordExporter WordExport = new WordExporter();
WordExport.export(outputStream, workbook.execute(parameterMap));
注:FineReport报表导出Word不支持导出悬浮元素,因此若您需导出的模板中包含有悬浮元素如图表,请将其改为单元格元素。
1.5 导出Pdf文件
//将结果工作薄导出为Pdf文件
outputStream = new FileOutputStream(new File("E:\\PdfExport.pdf"));
PDFExporter PdfExport = new PDFExporter();
PdfExport.export(outputStream, workbook.execute(parameterMap));
1.6 导出Txt文件
//将结果工作薄导出为Txt文件(txt文件本身不支持表格、图表等,被导出模板一般为明细表)
outputStream = new FileOutputStream(new File("E:\\TxtExport.txt"));
TextExporter TxtExport = new TextExporter();
TxtExport.export(outputStream, workbook.execute(parameterMap));
1.7 导出Csv文件
//将结果工作薄导出为Csv文件
outputStream = new FileOutputStream(new File("E:\\CsvExport.csv"));
CSVExporter CsvExport = new CSVExporter();
CsvExport.export(outputStream, workbook.execute(parameterMap));
2. 示例
2.1 完整可执行代码
编译运行该代码后,就会在E盘下生成不同格式的文件,这样就导出成功了。

索引:
  文明发言,用心评论
我的问题解决了 没有帮助
 
Copyright©2019 帆软软件有限公司
苏ICP备18065767号-3