首页 > 技术文章 > [转]水晶报表如何完美导出一个Excel表格

karsase 2013-08-26 14:11 原文

现有报表项目中,一般有把报表导出成Excel的要求
而对于水晶报表来说,虽然带了导出Excel的功能,但是能导出一个能用的excel表格却不容易
因为很容易就会出现跨行跨列的情况,默认导出是没有格线的,手工(或者导出时选了格线)加上格线后,会显得很难看
最主要的是没法直接在上面用,这给报表的再处理也带来了很大的不便。

很长一段时间以来,我一直是这么认为的,但是实际上,这是可以实现的。(非常感谢IBM的周勇)

我们一般做格子状的显示,都是用大框加线条或者单纯线条来做的,其实只要换个方式,用字段的边框来实现就可以了。
先来看一下最终效果


需要说明的是,这个表格导出的时候,是没有选择“显示网格线”的

以上制作方法同样适用于infoview/web方式地导出。

把要使用的字段全划拉上,右键,格式化,选边框


注意,不是把字段的四个边全选上,比如在本例中,对于页眉上的几个表头字段,使用了左上下三边,最右边一个字段多了个右边
这是因为前一个字段把后一个字段的左边框作为自己的右边框了
同样的,对于详细资料节上的字段,只用左下两个边,最右边的加一个右边框即可
这样详细资料节的每行的下边沿作为下一行的上边沿,对于第一行来说,它使用页眉上那一行的下边沿作为自己的上边沿

比较绕口,呵呵,不过做几次就熟悉了。

20090506更新:
使用上述方法,如果字段中存在Null或空的情况,会导致出现一个白色的区块,没有边框。可用如下方法解决:

如果是字符型的字段

if {字段}='' or isnull(字段)  then
' '
else
{字段}

 

如果是数值型字段

if {字段}='' or isnull(字段)  then
0
else
{字段}

 

把这个公式放到原来字段的位置上,同样设置边框等就可以了

推荐阅读