单元格格式设置

编辑
文档创建者:印然 (67260 )     浏览次数:4184次     编辑次数:9次     最近更新:ukae 于 2018-08-15     

目录:

1.描述编辑

单元格是组成报表的最小元素,FineReport将单元格很多属性开放给应用开发人员进行控制,如新增单元格,设置列宽、行高,字体、前景色,背景色、显示位置、边框样式、边框颜色等等。以下我们将常用的属性设置列出供您参考,效果如下:

222

2. 实现原理编辑

2.1 新建单元格
新建一个单元格,位置为(1,1),列向占2个单元格,行向占2个单元格,文本值为 "FineReport",位置从(0,0)开始
TemplateCellElement cellElement = new DefaultTemplateCellElement(1, 1, 2, 2, "FineReport");
2.2 设置单元格行高、列宽
设置第1列宽为300px,设置第1行高为30px,行列编号都是从0开始
worksheet.setColumnWidth(1, new OLDPIX(300)); worksheet.setRowHeight(1, new OLDPIX(30));
2.3 获取单元格样式
得到CellElement的样式,如果没有新建默认样式
Style style = cellElement.getStyle(); if (style == null) { style = Style.getInstance(); }
2.4 设置单元格样式
/设置单元格单元格的样式
cellElement.setStyle(style);
2.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);
2.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);

3. 实现步骤编辑

改变单元格的格式,应先取出该单元格(CellElement)的格式(Style)。若您是新建一个单元格,则Style是null,故当取出Style后应先判断其值是否为null,如果这个值为空,则需先新建一个Style,然后再将该值赋给CellElement。最后根据Style和FRFont中的方法进一步地设置该单元格的各种属性。
3.1可执行代码如下:
//单元格格式设置 package com.fr.demo; import java.awt.Color; import java.awt.Font; import java.util.Map; import com.fr.base.Style; import com.fr.base.background.ColorBackground; import com.fr.general.FRFont; import com.fr.report.cell.DefaultTemplateCellElement; import com.fr.report.cell.TemplateCellElement; import com.fr.report.worksheet.WorkSheet; import com.fr.stable.Constants; import com.fr.stable.unit.OLDPIX; import com.fr.web.core.Reportlet; import com.fr.web.request.ReportletRequest; import com.fr.main.TemplateWorkBook; import com.fr.main.impl.WorkBook; public class SetCellElementStyle extends Reportlet { public TemplateWorkBook createReport(ReportletRequest arg0) { // 新建报表 WorkBook workbook = new WorkBook(); WorkSheet worksheet = new WorkSheet(); // 新建一个单元格,位置为(1,1),列占2单元格,行占2单元格,文本值为 "FineReport" TemplateCellElement cellElement = new DefaultTemplateCellElement(1, 1, 2, 2, "FineReport"); // 设置列宽为300px,设置行高为30px worksheet.setColumnWidth(1, new OLDPIX(300)); worksheet.setRowHeight(1, new OLDPIX(30)); // 得到CellElement的样式,如果没有新建默认样式 Style style = cellElement.getStyle(); if (style == null) { style = Style.getInstance(); } // 设置字体和前景的颜色 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); // 设置边框 style = style.deriveBorder(Constants.LINE_DASH, Color.red, Constants.LINE_DOT, Color.gray, Constants.LINE_DASH_DOT, Color.BLUE, Constants.LINE_DOUBLE, Color.CYAN); // 改变单元格的样式 cellElement.setStyle(style); // 将单元格添加到报表中 worksheet.addCellElement(cellElement); workbook.addReport(worksheet); return workbook; } @Override public void setParameterMap(Map arg0) { // TODO Auto-generated method stub } @Override public void setTplPath(String arg0) { // TODO Auto-generated method stub } }  
3.2发布并预览
将编译后的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


附件列表


主题: 二次开发
如果您认为本文档还有待完善,请编辑

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

此页面有帮助吗? [ 去社区提问 ]