反馈已提交

网络繁忙

单元格样式设置

  • 文档创建者:lu123
  • 历史版本:21
  • 最近更新:RosieY 于 2022-01-04
  • 1. 概述

    1.1 应用场景

    上一节中示例如何创建报表,新增单元格。单元格是组成报表的最小元素,增加后就要对其进行格式设置,如列宽、行高、字体、前景色、背景色、显示位置、边框样式、边框颜色等等。如下图所示:

    1640919927377183.png

    1.2 实现原理

    改变单元格的格式,应先取出该单元格(CellElement)的格式(Style)。若您是新建一个单元格,则 Style 是 null,故当取出 Style 后应先判断其值是否为 null,如果这个值为空,则需先新建一个 Style,然后再将该值赋给 CellElement。最后根据 Style 和 FRFont 中的方法进一步地设置该单元格的各种属性。

    1)新建单元格

    新建一个单元格,位置为 (1,1) ,列向占 2 个单元格,行向占 2 个单元格,文本值为 "FineReport",位置从 (0,0) 开始

    TemplateCellElement cellElement = new DefaultTemplateCellElement(1, 1, 2, 2, "FineReport");

    2)设置单元格行高、列宽

    设置第 1 列宽为 300px,设置第 1 行高为 30px,行列编号都是从 0 开始

    worksheet.setColumnWidth(1, new OLDPIX(300));  
    worksheet.setRowHeight(1, new OLDPIX(30));

    3)获取单元格样式

    得到 CellElement 的样式,如果没有新建默认样式

    Style style = cellElement.getStyle();  
    if (style == null) {  
        style = Style.getInstance();  
    }

    4)设置单元格样式

    cellElement.setStyle(style);

    5)设置字体、字号

    // 设置字体和前景的颜色   
    FRFont frFont = FRFont.getInstance("Dialog", Font.BOLD, 16);   
    frFont = frFont.applyForeground(new Color(21, 76, 160));   
    style = style.deriveFRFont(frFont);         
    // 设置背景   
    ColorBackground background = ColorBackground.getInstance(new Color(255, 255, 177));   
    style = style.deriveBackground(background);   
    // 设置水平居中   
    style = style.deriveHorizontalAlignment(Constants.CENTER);

    6)设置单元格边框样式和边框颜色

    style = style.deriveBorder(Constants.LINE_DASH, Color.red, Constants.LINE_DOT, Color.gray, Constants.LINE_DASH_DOT, Color.BLUE, Constants.LINE_DOUBLE, Color.CYAN);

    如下边框的名称及对应的效果图,可根据需要样式修改代码。

    边框样式名称:LINE_NO,其效果为:无边框

    边框样式名称:LINE_THIN,其效果为:222

    边框样式名称:LINE_MEDIUM,其效果为:222

    边框样式名称:LINE_DASH,其效果为:222

    边框样式名称:LINE_HAIR,其效果为:222

    边框样式名称:LINE_DASH2,其效果为:222

    边框样式名称:LINE_THICK,其效果为:222

    边框样式名称:LINE_DOUBLE,其效果为:222

    边框样式名称:LINE_DOT,其效果为:222

    边框样式名称:LINE_MEDIUM_DASH,其效果为:222

    边框样式名称:LINE_DASH_DOT,其效果为:222

    边框样式名称:LINE_MEDIUM_DASH_DOT,其效果为:222

    边框样式名称:LINE_DASH_DOT_DOT,其效果为:222

    边框样式名称:LINE_MEDIUM_DASH_DOT_DOT,其效果为:222

    边框样式名称:LINE_SLANTED_DASH_DOT,其效果为:222

    2. 示例

    如下示例通过一个简单的程序实现新建一个报表,设置单元格样式,然后在浏览器中直接访问该网络报表。

    2.1 准备编译环境

    编译程序前,需先创建一个 Java 工程环境,并且需要一个 Java 编辑器,如 Eclipse 或 idea 。

    在编辑器工程中导入 FineReport 工程 JAR 包。包括用户自己报表工程

    %FR_HOME%/lib下的所有的包,

    %FR_HOME%/server/lib 下的所有包,

    %FR_HOME%/webapps/webroot/WEB-INF/lib下的所有包,

    还要引入 JDK 下的 tools.jar。详细操作可参考:编译Java程序 

    2.2 定义程序网络报表

    2.2.1 编写 Java 程序

    在编辑器中编写 Java 程序 SetCellElementStyle.java,其中实现新建报表、单元格中插入值,设置单元格样式等。 

    完整代码可参见:

    注:修改 Java ,重新编译生成 class ,替换原有 class 后,必须重启工程才能生效,否则一直都是展示原来的模板。

    https://code.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/demo/SetCellElementStyle.java

    2.2.2 编译 Java 文件

    Java 程序编写完成后,在编译器中编译 SetCellElementStyle.java ,编译通过后,将会在编译器对应工程文件存储路径下生成 SetCellElementStyle.class 类文件。如下图所示:

    点击下载 class 文件:SetCellElementStyle.rar

    2.3 发布并在 Web 端预览 

    将编译后的 SetCellElementStyle.class 放到报表工程 %FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\demo目录下。如下图所示:


    启动服务器,在浏览器中输入访问报表工程文件的路径,如使用本地设计器工程,启动后在浏览器端输入http://localhost:8075/webroot/decision/view/report?viewlet=com.fr.demo.SetCellElementStyle便可以预览报表。如下图所示:

    222

    附件列表


    主题: 二次开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持