ReportLite 实践:有复杂格式的多层交叉报表
格式复杂的多层分组交叉报表很常见,在 Excel 中可以使用数据透视表实现分组汇总,但结果只能按照固定的布局去展示,常常不是我们想要的结果,比如要要用 xls 中的销售数据做这样的报表:
用数据透视表做出来是这个样子的:
数据透视表的样式很死板,合并格没法弄、表头斜线不能加、想插入一些行列也不允许,限制太多了。
金额的汇总和订单的计数属于同一分类,在分类处做个合并格,查看数据会更方便。表头斜线能更直观看出报表结果不同区域的含义,而这些要求用透视表都无法做到,虽然可以在上边手动再增加几行做个固定表头,但是数据一旦变化又要重来,这种方式也行不通。
用 ReportLite 制作起来很容易,按照要求制作报表模版,在模版里灵活设置报表样式就行了。
报表制作
启动 ReportLite, 新建报表并设置报表中用到的数据:ReportLite 工具栏—”Report”—”Dataset”—”Add”—”File dateset”,选择要用的 xls 文件。
Name 列的 ds1 是自动产生的,表示 xls 被读入到 ReportLite 的名称,在报表模版中用这个名称设置单元格与数据的绑定关系。
接下来就是报表模版的制作:
ReportLite 采用类 Excel 的设计方式,单元格命名以及一些常规公式和 Excel 中是保持一致的。
在分组交叉报表中,主要用到 group 函数,如 A4 单元格表达式:=ds1.group(States;States:1),表示从 ds1 中取 States 列数据并将数据相同的放在一组之内,这样其右侧单元格再从 ds1 中取数时会从相应的组内取数汇总。C2 单元格同样使用 group 函数,并且将 C2 单元格的 "Expanding Mode" 属性(在右边的属性栏中)设置成 "Horizontal",报表预览时就会达到 A4 纵向拉伸,C2 横向拉伸的双向拉伸效果。
C4 单元格表达式 =ds1.sum(Amount),表示在交叉部分对 Amount 求和汇总,D4 单元格表达式 =ds1.count(),对数据进行计数统计。
格式调整起来就比较好做了,主要是合并格等操作:
将 A4、A5 合并,这样按 Sates 分组拉伸时会对每个 States 增加合计,C2、D2 合并,按 Category 横向拉伸时,每个 Category 下会带有订单金额的合计以及订单数量统计。
ReportLite 中交叉表头允许合并单元格以及设置斜线等操作,将 A2 到 B3 单元格合并,并设置表头斜线,格子的字体颜色、填充颜色、数据格式等这些操作和 Excel 中都一样,和 Excel 中不同的是,ReportLite 中格子会根据数据多少自动拉伸,设置样式时只要在几个格子里设置就行,操作起来更省事一些。
报表模版设置完成后可以预览报表:
现在就可以另存为 XLS 文件了。
从报表模版制作时可以看到,报表模版中可以灵活设置单元格合并、表头斜线、样式等设置,使得报表展示的效果更加丰富,而且单元格会根据数据多少自动拉伸,一些样式操作只需要在几个单元格上设置下就行,操作起来更加方便。
下载 ReportLite 及更多资料http://www.raqsoft.com/reportlite。
英文版