最近的项目中用到了Crystal Report导出Excel,而且user对Excel format的格式要求非常高,以下是我们遇到的和解决方法

  1. 线和线框无法导出。在Crystal Report里面你即使画了线(Line)或者线框(Box),导成Excel之后是看不到的。解决的方法就是用text field的边框来代替画线或者画框。
  2. 单元格错位问题。当header和detail里面的textfield不是完全对齐的时候,在导成excel之后,会发现有些单元格错位了。解决方法是保证header和detail里的textfield宽度一致,而且最好text field之前不要留出空隙。横向的text field也要保证高度一致,这样导成Excel就不大会遇到类似的问题。
  3. 改图表的图例(Legend text)文字。要修改图表的图例问题,首先你需要有完整的Crystal Report Designer,在VS集成的CR里面是没办法改的。而在Crystal Report Designer中,要改图例文字也只有在报表预览的时候才能改,改完之后的rpt文件可以拿到其他地方去用,再运行的时候就会显示你修改过之后的图例文字了。
  4. 页面大小问题。比方说在Crystal Report里面设计A4大小的纸张,导出成Excel后,直接打印预览,靠页面右边的一些字段往往超过页面的宽度。对这个问题没找到很好的解决方法,一种变通的办法是在设计的时候就在纸张的右边空出一定的空间,但这样的话如果还要同时导出pdf那就不好看了。

 

总的来说,感觉Crystal Report对导出Excel支持的不是很好,总有这样那样的问题。如果对Excel格式要求很高的话,可能并不适合采用Crystal Report来做。我们用了最新的Crystal Report Designer 2008,也没见他对Excel的支持有多大的改进。另外独立的Designer和VS集成的相比带来很显著的好处是图表有很多部分都可以调了,集成在VS中的CR对图表支持的功能被阉割了很多。其他倒没有发现太大的不同。