现有报表项目中,一般有把报表导出成Excel的要求
而对于水晶报表来说,虽然带了导出Excel的功能,但是能导出一个能用的excel表格却不容易
因为很容易就会出现跨行跨列的情况,默认导出是没有格线的,手工(或者导出时选了格线)加上格线后,会显得很难看
最主要的是没法直接在上面用,这给报表的再处理也带来了很大的不便。
很长一段时间以来,我一直是这么认为的,但是实际上,这是可以实现的。(非常感谢IBM的周勇)
我们一般做格子状的显示,都是用大框加线条或者单纯线条来做的,其实只要换个方式,用字段的边框来实现就可以了。
先来看一下最终效果
需要说明的是,这个表格导出的时候,是没有选择“显示网格线”的
以上制作方法同样适用于infoview/web方式地导出。
我做了个操作视频,所以这里只是简单地说明一下。
把要使用的字段全划拉上,右键,格式化,选边框
注意,不是把字段的四个边全选上,比如在本例中,对于页眉上的几个表头字段,使用了左上下三边,最右边一个字段多了个右边
这是因为前一个字段把后一个字段的左边框作为自己的右边框了
同样的,对于详细资料节上的字段,只用左下两个边,最右边的加一个右边框即可
这样详细资料节的每行的下边沿作为下一行的上边沿,对于第一行来说,它使用页眉上那一行的下边沿作为自己的上边沿
比较绕口,呵呵,不过做几次就熟悉了。
20090506更新:
使用上述方法,如果字段中存在Null或空的情况,会导致出现一个白色的区块,没有边框。可用如下方法解决:
如果是字符型的字段
if {字段}='' or isnull(字段) then
' '
else
{字段}
如果是数值型字段
if {字段}='' or isnull(字段) then
0
else
{字段}
把这个公式放到原来字段的位置上,同样设置边框等就可以了
以下为视频文件及模板(本文附带了一个按条件更改背景色的效果,是为了解决另外一个网友的问题,不是必须的)
https://files.cnblogs.com/babyt/CR2008040401.rar
解压缩密码为:babyt