我有一个SSRS报告,其中有一个“注释”字段,其中有足够的文本可以跨越每个记录的多行。它在ASP.Net ReportViewer控件中渲染得很好,但是当它被导出时,格式可能会有所不同。导出到Word看起来很棒。但是,导出到Excel和PDF时,每个记录的行高度永远不会超出默认值,因此文本会被截断。在Excel中我可以进入并双击单个或多个行高来修复它们,但这是我们不想要的额外步骤。
由于没有来自ReportViewer的“导出”事件,我该如何修复它以便在Excel中正确导出/格式化?有没有办法在渲染时在ReportViewer中执行它,或者我是否需要考虑生成Excel文件然后进入它以事后用VBA代码更改它?有什么想法吗?
答案 0 :(得分:3)
如果用户使用报表管理器,则无法判断用户何时点击导出按钮。但是,如果您提供自己的Web界面来生成报告,则可以控制该过程。您可以使用web services从SSRS获取报告。然后,您可以使用服务器端的Excel操作工具(如SoftArtisans OfficeWriter)open and post-process代码中的电子表格,并将其流式传输给用户。
免责声明:我为SoftArtisans工作
答案 1 :(得分:1)
不幸的是,您可以对内置的reportViewer渲染器进行很多调整。您可以通过DeviceInfo字符串调整一些渲染器的输出,但是,您没有尝试做什么。 (Information on DeviceInfo)
您可以购买一些第三方渲染器,这将为您提供更多控制。我从未遇到过免费的。
您可以开始编写自己的渲染器,但我强烈建议您不要这样做,因为这种情况会有些过分(需要很长时间才能完成此操作)。
除此之外,您可以编写一些代码来通过COM打开Excel文件,并更改文件。您可以在导出完成后立即对其进行编码,从而简化它。或者,您也可以为Excel编写一些VBA宏,就像您提到的那样。