日期:2014-05-20  浏览次数:20828 次

【水晶报表内功心法】--完美Excel(上)
本帖最后由 babyt 于 2010-03-24 12:39:35 编辑
索引 

.【水晶报表内功心法】--序言 
.【水晶报表内功心法】--推拉之间
.【水晶报表内功心法】--PULL模式样板招式
.【水晶报表内功心法】--PUSH模式样板招式
.【水晶报表内功心法】--信手拈来,掌控对象
============================================================ 

本来这一篇要放到很后面去写,不过论坛里有人问到,就提前了。

很多人说水晶报表导出的Excel太难看,或者导出的Excel根本没法用,其实水晶报表是可以完整导出到Excel的
当然,水晶报表与其他基于CELL的报表工具相比,对Excel的支持是很弱的。而所谓的完美,是相对的。
我抓了大量的操作图来进行解说,或许大家会体会到为什么我会说水晶报表是一个操作性很强的工具的原因了。


一般我们画格线的时候,导出的Excel要么是乱的,要么是没格线。
有的朋友说我导出的时候选“显示网格线”就可以啊。

但是:
1: Web项目导出时没这个项目,只在Winform下有
2:用户是不会愿意去做这个事情的

下面的方法,是基于字段的边框来实现的,不是线条和框。本篇的目标是实现将报表导出到Excel后,显示成这样一个效果


第一步:基本操作方法

准备一个空的报表


把几个字段拖上去



为了便于精细操作,我们把模板放大一点。
视图-缩放,选一个150%



这样我们的模板就放大了,注意字段和字段之间是有间隙的(当然,不用放大也看得到,呵呵)

大家注意点这个图上有很多小点,这个就是报表的操作精度。
为了精细操作,设置这个精度小一点

进入如下菜单项目,

设置最小单位为0.1,当然还能再小,不过太小了反而操作起来更困难


然后我们再看,那个小点之间的间距明显变小了


保持第1个字段不动,点第2个,平行左移,不要太用力,很容易就拉到前一个字段的右边沿了。
做多了,就会有手感。一拉就行了。表头上的文本也会跟着动

依次操作完后,效果是这样的,注意,两个字段之间的间隙已经没有了


下面简单讲解一下一些简单的操作机器
横线字段的对齐,选中要对齐的字段(可以划拉一下选中,或者是Ctrl选),在其中一个上点右键,可以设置对齐方式和大小比例



纵向字段操作也是类似



好了完成了第一步。

第二步:加格线
选中表头上的所有字段,在其中一个上点右键,格式化多个对象


在出来的界面上,切换到模板标签页,设置边框线。为了方便描述,我就简称为:上下右
也就是上边下边和右边框有边线。


出来的效果如下,左边第一个字段有个小缺口


,补一下。
在第一个字段上点右键,格式化对象,在边框标签页上,设置左边框为单线,其余不要动.
然后选中详细资料节上的字段,设置边线为:下右(下边沿和右边沿单线),
再把第一个字段补一个左边沿单线,出来如下效果。



大功告成,预览一下


导出来看看,注意选第一个XLS格式


如果出来这个界面,不要管,点确定然后继续


看一下效果吧


看这效果我来具体说一下原理。
竖线的部分我就不讲了,单独讲讲横线的为什么这么设。

我们知道页眉是每页固定的,每页只出现一次因为我们设置了上下边框都是横线。那么他的下边沿就是显示为一条横线,仅贴在页眉的下边沿。
而我们在设置详细资料节的时候,设置了下边沿。因为详细资料节是循环的,于是每行的下边沿又刚好是下一行的上边沿。
只有第一条记录上边沿是没有的,而刚好页眉下边沿的线就成为这条记录的上边沿。
所以整个数据就闭合起来了。


第三步:稍微完善一下

左边空出来一列?再改进一下吧。
进入模板,把所有的字段全选中,然后平行往左拖,拖到最左边为止。
实际上不是绝对的左边,还是有个小缝隙的,不过没关系,只要不能再拖了就行


继续向着我们的目标(第一个图迈进)
选中表头上的所有字段,点右键,格式化多个对象,进入边框标签页