文件输出的多样性,准确性和稳定性对于我们常用的报表软件来说很重要。报表的输入是指从报表的模板文件(XML格式的)创建WorkBook对象,输出则指将报表保存为各种格式文件,比如Pdf、Excel、Word这种常见的文件格式,比如FineReport还支持cpt、Svg、Csv、Image(包含png、 jpg、gif、 bmp、wbmp)等多种文件格式。

因为常常会碰到报表的开发工作,这里总结了几种格式文件导出的API。

1、导出成内置数据集模板

导出成内置数据集模板,就是将原模板的数据源根据参数条件查询出结果并转为内置数据集,然后把模板导出,不需要对原模板进行计算(数据列扩展、公式计算等)。

// 将未执行模板工作薄导出为内置数据集模板

outputStream = newFileOutputStream(newFile("E:\\EmbExport.cpt"));

EmbeddedTableDataExporter templateExporter = newEmbeddedTableDataExporter();

templateExporter.export(outputStream, workbook);

2、导出模板文件

我们可以将原模板通过程序编辑后再次导出为模板文件,或者将某一路径下的模板保存至另一路径下。

// 将模板工作薄导出模板文件,在导出前您可以编辑导入的模板工作薄,可参考报表调用章节

outputStream = newFileOutputStream(newFile("E:\\TmpExport.cpt"));

((WorkBook) workbook).export(outputStream);

3、导出Excel文件

模板工作薄WorkBook执行后为结果工作薄ResultWorkBook,我们可以把计算后的结果导出成Excel文件。

// 将结果工作薄导出为Excel文件

outputStream = newFileOutputStream(newFile("E:\\ExcelExport.xls"));

ExcelExporter ExcelExport = newExcelExporter();

ExcelExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

4、导出Word文件

// 将结果工作薄导出为Word文件

outputStream = newFileOutputStream(newFile("E:\\WordExport.doc"));

WordExporter WordExport = newWordExporter();

WordExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

5、导出Pdf文件

// 将结果工作薄导出为Pdf文件

outputStream = newFileOutputStream(newFile("E:\\PdfExport.pdf"));

PDFExporter PdfExport = newPDFExporter();

PdfExport.export(outputStream,workbook.execute(parameterMap,newWriteActor()));

6、导出Txt文件

// 将结果工作薄导出为Txt文件(txt文件本身不支持表格、图表等,被导出模板一般为明细表)

outputStream = newFileOutputStream(newFile("E:\\TxtExport.txt"));"1709587"snippet_file_name="blog_20160606_6_1825679"name="code"class="java">

7、导出Csv文件

// 将结果工作薄导出为Csv文件

outputStream = newFileOutputStream(newFile("E:\\CsvExport.csv"));

CSVExporter CsvExport = newCSVExporter();

CsvExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

8、导出Svg文件

//将结果工作薄导出为SVG文件

outputStream = newFileOutputStream(newFile("D:\\SvgExport.svg"));

SVGExporter SvgExport = newSVGExporter();

SvgExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

9、导出Image文件

//将结果工作薄导出为image文件

outputStream = newFileOutputStream(newFile("D:\\PngExport.png"));

ImageExporter ImageExport = newImageExporter();

ImageExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

10、释放进程

通过导出API在后台导出excel等文件,会产生很多进程,通过下面的方案释放进程。在导出完成之后添加下面代码:

outputStream.close();

ModuleContext.stopModules();

例如,一个完整的可执行代码:

packagecom.fr.io;

importjava.io.File;

importjava.io.FileOutputStream;

importcom.fr.base.FRContext;

importcom.fr.general.ModuleContext;

importcom.fr.base.Parameter;

importcom.fr.dav.LocalEnv;

importcom.fr.io.exporter.CSVExporter;

importcom.fr.io.exporter.EmbeddedTableDataExporter;

importcom.fr.io.exporter.Excel2007Exporter;

importcom.fr.io.exporter.ExcelExporter;

importcom.fr.io.exporter.PDFExporter;

importcom.fr.io.exporter.TextExporter;

importcom.fr.io.exporter.WordExporter;

importcom.fr.io.exporter.SVGExporter;

importcom.fr.io.exporter.ImageExporter;

importcom.fr.main.impl.WorkBook;

importcom.fr.main.workbook.ResultWorkBook;

importcom.fr.report.module.EngineModule;

importcom.fr.stable.WriteActor;

publicclassExportApi {

publicstaticvoidmain(String[] args) {

// 定义报表运行环境,才能执行报表

String envpath = "D:\\FineReport_8.0\\WebReport\\WEB-INF";

FRContext.setCurrentEnv(newLocalEnv(envpath));

ModuleContext.startModule(EngineModule.class.getName());

ResultWorkBook rworkbook = null;

try{

// 未执行模板工作薄

WorkBook workbook = (WorkBook) TemplateWorkBookIO

.readTemplateWorkBook(FRContext.getCurrentEnv(),

"\\doc\\Primary\\Parameter\\Parameter.cpt");

// 获取报表参数并设置值,导出内置数据集时数据集会根据参数值查询出结果从而转为内置数据集

Parameter[] parameters = workbook.getParameters();

parameters[0].setValue("华东");

// 定义parametermap用于执行报表,将执行后的结果工作薄保存为rworkBook

java.util.Map parameterMap = newjava.util.HashMap();

for(inti =0; i

parameterMap.put(parameters[i].getName(), parameters[i]

.getValue());

}

// 定义输出流

FileOutputStream outputStream;

// 将未执行模板工作薄导出为内置数据集模板

outputStream = newFileOutputStream(newFile("D:\\EmbExport.cpt"));

EmbeddedTableDataExporter templateExporter = newEmbeddedTableDataExporter();

templateExporter.export(outputStream, workbook);

// 将模板工作薄导出模板文件,在导出前您可以编辑导入的模板工作薄,可参考报表调用章节

outputStream = newFileOutputStream(newFile("D:\\TmpExport.cpt"));

((WorkBook) workbook).export(outputStream);

// 将结果工作薄导出为2003Excel文件

outputStream = newFileOutputStream(newFile("D:\\ExcelExport.xls"));

ExcelExporter ExcelExport = newExcelExporter();

ExcelExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

// 将结果工作薄导出为Word文件

outputStream = newFileOutputStream(newFile("D:\\WordExport.doc"));

WordExporter WordExport = newWordExporter();

WordExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

// 将结果工作薄导出为Pdf文件

outputStream = newFileOutputStream(newFile("D:\\PdfExport.pdf"));

PDFExporter PdfExport = newPDFExporter();

PdfExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

// 将结果工作薄导出为Txt文件(txt文件本身不支持表格、图表等,被导出模板一般为明细表)

outputStream = newFileOutputStream(newFile("D:\\TxtExport.txt"));

TextExporter TxtExport = newTextExporter();

TxtExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

// 将结果工作薄导出为Csv文件

outputStream = newFileOutputStream(newFile("D:\\CsvExport.csv"));

CSVExporter CsvExport = newCSVExporter();

CsvExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

//将结果工作薄导出为SVG文件

outputStream = newFileOutputStream(newFile("D:\\SvgExport.svg"));

SVGExporter SvgExport = newSVGExporter();

SvgExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

//将结果工作薄导出为image文件

outputStream = newFileOutputStream(newFile("D:\\PngExport.png"));

ImageExporter ImageExport = newImageExporter();

ImageExport.export(outputStream, workbook.execute(parameterMap,newWriteActor()));

outputStream.close();

ModuleContext.stopModules();

} catch(Exception e) {

e.printStackTrace();

}

}

}

编译运行该代码后,就会在E盘下生成不同格式的文件,这样就导出成功了。

java调用帆软cpt文件_报表开发导出各种格式文件的API相关推荐

  1. java调用帆软cpt文件_报表中心FineReport中java如何直接调用报表打印

    完整代码: package com.fr.io; import java.io.File; import java.util.HashMap; import com.fr.base.FRContext ...

  2. python用os.system打开wav文件_使用python读取wav格式文件

    ** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...

  3. python如何打开npy文件_操作python实现npy格式文件转换为txt文件

    如下代码会将npy的格式数据读出,并且输出来到控制台:import numpy as np ##设置全部数据,不输出省略号 import sys np.set_printoptions(thresho ...

  4. ppt生成eps文件_如何将AI/EPS格式文件转为ppt格式

    平时见到很多AI或EPS文件都想直接拿来放到PPT上,对于很多图片来说,只需转PNG就可以导入到PPT了,但对于一些图表,在导入PPT的时候还想要编辑下,这个时候就要用到下面的将AI/EPS格式文件转 ...

  5. Java 导出DBF格式文件(标题中文)

    本文章不是原创,但是我抄袭的那个连接我找不到了,还是有些自己写的东西,见谅! 目录 前言 一.DBF是什么? 二.使用步骤 1.引入库 2.正文 总结 前言 写这篇文章是有原因的,我前两天有一个需求, ...

  6. 锐浪报表 Grid++Report 导出其它格式文件

    锐浪报表 Grid++Report 导出其它格式文件 Grid++Report控件设计的报表,不仅可以打印,还可以导出8种格式的报表文件. 在Grid++Report的打印浏览中,有指定导出文件的对话 ...

  7. java 导出csv 格式,java导出csv格式文件的方法

    这篇文章主要为大家详细介绍了java导出csv格式文件的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 导出csv格式文件的本质是导出以逗号为分隔的文本数据 imp ...

  8. java 如何导出json文件_java导出json格式文件的示例代码

    本文介绍了java导出json格式文件的示例代码,分享给大家,具体如下: import java.io.File; import java.io.FileWriter; import java.io. ...

  9. java csv 单元格格式_java导出csv格式文件的方法

    本文实例为大家分享了java导出csv格式文件的具体代码,供大家参考,具体内容如下 导出csv格式文件的本质是导出以逗号为分隔的文本数据 import java.io.BufferedWriter; ...

最新文章

  1. 那个全网下班最早的程序员,我发现了他的秘密……
  2. 1.13 南京站 | 2022 开年 Serverless 沉浸式技术实践营开始报名
  3. 关于c++静态类的说法
  4. KMP算法的nextval[] 即优化next[]
  5. 数据结构(哈夫曼树+KMP)之 数据加密+解密
  6. JS 获取浏览器信息,给出友情提示,避免部分兼容性问题
  7. 定了!这个专业研究生扩招,博士生待遇要提高!已有多所高校新增…
  8. 办公自动化及工作流技术
  9. 修改文件中的内容,使用fileinput模块
  10. vue 给页面添加enter回车事件 - 代码篇
  11. 打开计算机硬盘是个磁盘图标 不显示大小,硬盘图标显示异常的解决办法
  12. 遥感应用中影像最佳波段组合分析详细过程
  13. Android开发应用apk文件发送到微信打不开解决方案
  14. 基于异构网络节点表示的推荐系统(HERec)
  15. PS进阶篇——如何PS软件给公司单位图片加版权水印(六)
  16. 【深度学习】第二章:全连接神经网络
  17. 单引号,双引号,转义
  18. StudyFlutter——我的第一个APP
  19. Windows远程连接电脑怎么配置远程音频
  20. 爱普生L355打印机进纸故障排除

热门文章

  1. 小程序警告:Now you can provide attr `wx:key` for a `wx:for` to improve performance.
  2. 软件工程点菜系统的需求分析
  3. 苹果乔布斯辞世享年56岁 世界因他而变得美好
  4. 从“咖啡智能”整车系统看长城汽车的未来野心
  5. 基于精益生产的车间设施规划改善设计(zt)
  6. 2020年物联网安全面临的挑战有哪些
  7. 如果你的男朋友是名DJ
  8. vue项目与ue交互
  9. 多个爬虫http代理ip解决方案
  10. Python数据采集与文本分析(学术)