JAVA项目中调用帆软报表导出Word、Excel、PDF等文件的分享

楼主
我是社区第377374位番薯,欢迎点我头像关注我哦~
  1. 最近需要在自己的程序中调用帆软的报表生成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();
        }
}

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 2关注人数 6817浏览人数
最后回复于:2021-5-21 17:33

返回顶部 返回列表