润乾报表插入Word文档

来源:互联网 发布:火爆网络的ann是谁 编辑:程序博客网 时间:2024/06/05 00:21

润乾报表制作完成后,不仅能实现展现及导出等功能,还能够根据用户需求, 通过指定模版文件中的书签名称确定插入位置,然后将报表、 图片、 文本内容插入到新的 Word 文件中。

 

本文主要介绍润乾报表插入word文档的具体步骤。

首先介绍下功能原理:

1、 建立word模版,在需要插入润乾报表的位置定义“书签”;

2、 Api根据word书签位置,插入计算后的报表对象;

3、 输出根据模版生成的word文件。

 

具体实现过程及相关代码:

1、 建立word模版

2、 Api计算报表,并通过DocxChanger类将报表结果插入指定书签,输出word结果

  

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import com.raqsoft.dm.Sequence;

import com.raqsoft.report.model.ReportDefine;

import com.raqsoft.report.usermodel.Context;

import com.raqsoft.report.usermodel.Engine;

import com.raqsoft.report.usermodel.IReport;

import com.raqsoft.report.util.ReportUtils;

import com.raqsoft.report.view.oxml.word.DocxChanger;

public class InsertWord {

    public static void main(String[] args) {

        try {

            //设置报表授权文件

            File flic = new File("D:/test.lic");

            FileInputStream lis = new FileInputStream(flic);

            Sequence.readLicense( Sequence.P_RPT, lis);

           

            File f = new File("D:/test.docx"); // 模板文件,注意仅仅是模版,不会被修改      

            File of = new File("D:/out.docx"); // 输出文件:最终根据模版生成的结果word文件。

            if (of.exists()) {

                of.delete();

            }

            FileOutputStream fos = new FileOutputStream(of);

            DocxChanger dc = new DocxChanger(f, fos); //实例化DocxChanger

           

            File f3 = new File("D:/a.rpx");             

            FileInputStream fis = new FileInputStream(f3);

            IReport report = ReportUtils.read(fis);

            fis.close();

             //构建报表运行上下文环境及引擎,并计算报表

            Context context = new Context();

            Engine engine = new Engine((ReportDefine) report, context);

            report = engine.calc();

             //将报表结果指定插入 report1 书签处,注意名字和word模版内书签名一致

            dc.insertReport("report1", report);  

            //执行所有修改动作,然后关闭输出文件流

            dc.execute();

            fos.close();

        } catch (Throwable x) {

            x.printStackTrace();

        }

       

    }

 

}

 

3、 对比验证结果

(1)Word模版(执行完api后,没有改变):

(2)报表实际运行结果

(3)输出的word结果文件(根据上面代码为out.docx)

     

0 0
原创粉丝点击