根据我的经验,Crystal reports 导出Excel是一件相当痛苦的事。不是说导出有多么复杂。主要是它导出的结果,于你做出来的结果相差甚大。
在我的工作中经常要和Crystal Reports 打交道,经常客户要求生成Excel输出。这时候我的都一点怕啊,因为你要花好多时间去调这个Excel 输出结果。它与PDF 结果简值就是一个在天上一个在地狱,不知道是不是要实现你做成什么样的PDF就能导出怎么样的Excel 结果是相当的难啊。总之这个功能只能说可以用,结果不会错。但导出的界面可以说让你用不满意这个词来形容有一点欠确。 好了,下面我就介绍一点我的经验。希望不要让大家同样痛我曾经的痛:
1)对于在Excel 中要显示线或框,如果你一直试在报表模板中增加线,哪你方向都错了。我曾经也这样试,试的我快砸电脑。结果还是一样,没有结果。请用一个矩形框试试吧,这样可有结果的。可能不会让你非常满意,但或许能解决你的问题。
2)如果要实现导出的Excel的每一个列都是你报表中的列,你在做报表时,要注意每个Header 之间的距离。太宽肯定会多一列的在Excel导出中。如果有一个需求让你导出的Excel列必须是一定宽度的。你除了压住火慢慢调之外,或者在心里骂Crystal Reports 的设计人员外,没有别的选择。它里面Header的宽度和你Excel列的宽度是不一样的。而且你在报表中两个列之间的距离也会影响导出Excel 列的宽度的。你必须让每个列之间的宽度都一样在报表中。然后耐着性子慢慢试吧。还是可以做出来的。
3)在导出的Excel行中不是一行,而是占了一行有多了一点点在在下面,看上去你不要看列的编号是不影响外观的,如果你看一下列编号,哪相当的不舒服啊。如果这个导出结果还要做进一步处理。哪你可能会调的到砸电脑的级限还是搞不定。只有长斯的在这种情况下折磨,或许你能吾到点什么啊。我也是这样痛苦的过来的,记住啊,这个问题只要做到一点就可以完成。尽可能的把你在报表中的列向上面的Section靠啊,就是尽你所能往顶上靠,不要跑到上一个Section中就可以了。这样你再导出一个Excel试。你会下现问题不见了。
好了,就先写这里吧。如果初学者可能会觉得云里雾里,不知道为什么JavaEye 不能上传本地图片,不知道是不是我不会用啊。所以只能用干吧吧的文字来表述啊。可能很难理解,当然这只是一个思想。问题是千奇百怪的,但思想是不变的。只要你掌握了思想任何问题都是可以解决的。
如果有这方面问题解决不了的朋友,我们可以一起学习啊。