您的位置:首页 > 其它

水晶报表如何完美导出一个Excel表格(转)

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

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

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



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



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

我做了个操作视频,所以这里只是简单地说明一下。
把要使用的字段全划拉上,右键,格式化,选边框



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

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

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

如果是字符型的字段

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

如果是数值型字段

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

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

以下为视频文件及模板(本文附带了一个按条件更改背景色的效果,是为了解决另外一个网友的问题,不是必须的) http://files.cnblogs.com/babyt/CR2008040401.rar 解压缩密码为:babyt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: