- 最近需要在自己的程序中调用帆软的报表生成excel、word文件做其他业务处理,查询了一下帆软的相关文档,没有合适的完整示例,而且查到的示例中引入了太多的jar包,这里把我项目运行的代码分享给大家,希望能给有需要的人减少查阅资料的时间。
复制代码 import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import com.fr.config.activator.BaseDBActivator;
import com.fr.config.activator.ConfigurationActivator;
import com.fr.general.I18nResource;
import com.fr.io.TemplateWorkBookIO;
import com.fr.io.exporter.WordExporter;
import com.fr.main.impl.WorkBook;
import com.fr.module.Module;
import com.fr.module.tool.ActivatorToolBox;
import com.fr.report.write.WriteActivator;
import com.fr.stable.WriteActor;
import com.fr.workspace.simple.SimpleWork;
/**
* 帆软报告导出对象
*
* @author xiujiantao
*
*/
public class FineReportUtil2 {
/**
* 1.Spring项目要保证扫描的@Controller @service 排除 com.fr.**.controller,否则项目启动的时候会加载帆软的controller导致项目启动失败。
* 2.需要引入到项目中的jar包清单如下:
* <p>帆软jar包均在\FineReport_10.0\webapps\webroot\WEB-INF\lib下
* <p>tools.jar为jdk安装目录的lib下
* <p>fine-decision-10.0.jar
* <p>fine-decision-report-10.0.jar
* <p>fine-accumulator-10.0.jar
* <p>fine-activator-10.0.jar
* <p>fine-core-10.0.jar
* <p>fine-datasource-10.0.jar
* <p>fine-report-engine-10.0.jar
* <p>fine-swift-log-adaptor-10.0.jar
* <p>fine-third-10.0.jar
* <p>fine-webui-10.0.jar
* <p>tools.jar
*/
public static void main(String[] args) throws Exception {
// 设置加载模块
Module module = ActivatorToolBox.simpleLink(new BaseDBActivator(), new ConfigurationActivator(),
new WriteActivator());
// 设置帆软目录
SimpleWork.checkIn("D:\\SOFTWARE\\FineReport_10.0\\webapps\\webroot\\WEB-INF");
// 多语言设置
I18nResource.getInstance();
// 加载模块
module.start();
// 读取帆软报表文件
WorkBook workbook = (WorkBook) TemplateWorkBookIO.readTemplateWorkBook("WJ360/rep3609grbg.cpt");
// 创建word导出对象
WordExporter wordExporter = new WordExporter();
// 新建流
FileOutputStream output = null;
try {
// 准备报表参数
Map<String, Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("WJID", "2dbc9caa-3950-4ccc-b68b-6326ddce01dd");
parameterMap.put("BCPRID", "2dbc9caa-3950-4ccc-b68b-6326ddce01dd_11237");
// 设置输出文件流
output = new FileOutputStream(new File("f:/output.doc"));
// 执行导出
wordExporter.export(output, workbook.execute(parameterMap, new WriteActor()));
} catch (Exception ex) {
ex.printStackTrace();
} finally {
// 关闭流
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 停止
module.stop();
}
}
|