Excel直接转成模板cpt

编辑
  • 文档创建者:印然
  • 浏览次数:4046次
  • 编辑次数:13次
  • 最近更新:Kevin-s 于 2019-06-23
  • 1. 问题描述

    存在很多 Excel 文件,要将它们转成 cpt 模板,不想通过设计器手动一张张导入,希望用程序在后台批量转换。


    2. 解决方案

    通过程序读取 Excel 文件转为模板 TemplateWorkBook,然后把模板输出为 cpt 文件。


    3. 示例

    3.1 读取 Excel 文件转为模板

    TemplateWorkBook


    File excelFile = new File("D:\\aa.xlsx"); // 获取EXCEL文件
    FileInputStream a = new FileInputStream(excelFile);


    3.2 再输出成 cpt 文件

    2003 版 xcel

    TemplateWorkBook tpl = new ExcelReportImporter().generateWorkBookByStream(a);
    OutputStream outputStream = new FileOutputStream(new File("D:\\abc.cpt")); // 转换成cpt模板
    ((WorkBook) tpl).export(outputStream);

    2007 版 Excel

    TemplateWorkBook tpl = new Excel2007ReportImporter().generateWorkBookByStream(a);
    OutputStream outputStream = new FileOutputStream(new File("D:\\abc.cpt")); // 转换成cpt模板
    ((WorkBook) tpl).export(outputStream);


    3.3 准备 Excel 文件

    分别另存为 aa.xls 和 aa.xlsx 到对应的路径,下面的代码中需要根据实际 Excel 文件存放的路径修改


    3.4 2007 版 Excel 完整代码如下:

    注:这里以 xlsx 代码为例,xls 代码按照 3.2 进行修改,并修改 import 包即可

    在一般情况下,若您希望在FineReport设计器基础上进行二次开发,我们可以在 Eclipse 或 IDEA 中通过调用 FineReport 启动类来启动设计器,以便于开发过程中的调试和二次开发的准备。

    注意需要引入 FineReport 设计器下的 JAR 包,详细点击 Eclipse 中启动设计器

    注:定义报表运行环境需要根据实际设计器的安装路径,比如安装在 C 盘,即 String envPath = "C://FineReport_10.0//webapps//webroot//WEB-INF" 

    另:Excel 文件路径也需要根据实际情况修改,例如文件在 D 盘,即D:\\aa.xlsx

    代码详见:

    https://git.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/io/ExcelToCpt.java


    3.4 编译并运行

    编译并运行该程序,就会在对应路径下导出 abc.cpt 模板文件,我们用设计器打开模板,可以看到,Excel 里面的数据已经保存至模板文件里面了。



    附件列表


    主题: 二次开发
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]