2010-01-21 61 views
1

我有一個SSRS報告,其中有一個註釋字段,其中有足夠的文本可以跨每條記錄多行。它在ASP.Net ReportViewer控件中呈現得很好,但是當它被導出時,格式可能不同。導出到Word看起來很棒。但是,導出到Excel和PDF時,每條記錄的行高不會超過默認值,因此文本會被截斷。在Excel中,我可以進入並雙擊單個或多個行高來修復它們,但這是我們不想要的額外步驟。在使用ASP.Net進行渲染後在Excel中更改行高度SSRS ReportViewer

由於沒有來自ReportViewer的「導出」事件,我該如何解決這個問題才能在Excel中正確導出/格式化?有沒有辦法在渲染時在ReportViewer內部執行它,還是需要考慮生成Excel文件,然後進入它以便事後用VBA代碼進行更改?有任何想法嗎?

回答

1

不幸的是,你可以對內置的reportViewer渲染器進行很少的調整。您可以通過DeviceInfo字符串調整某些渲染器的輸出,但是,對於您嘗試執行的操作,沒有任何影響。 (Information on DeviceInfo

有一些第三方渲染,你可以購買,這將給你更多的控制。我從來沒有遇到過免費的。

你可以開始編寫自己的渲染,但我強烈建議你不這樣做,因爲這將是矯枉過正這種情況(會帶你很長的時間來退出這個功能)。

除此之外,你可以編寫一些代碼來通過COM打開Excel文件,並修改文件。在導出完成後,您可以實際編寫該代碼,從而簡化它。或者,您也可以爲Excel編寫一些VBA宏,就像您提到的那樣。

+0

問題工作與編碼點東西后的,其實是我不知道當他們擊中導出按鈕開始。 :(我有Infragistics和Telerik的許可證,我想也許我可以使用他們的報告工具之一,但我喜歡讓用戶能夠使用ReportBuilder等工具來處理SSRS的想法。如果這個大個子讓我成爲一個交易破壞者,可能會走Telerik路線,原來我想也許是我在SSRS格式化報告的方式本身導致了問題,但可能不是。 – 2010-01-26 05:22:30

3

確實如果用戶在使用報表管理器時點擊導出按鈕,則無法判斷。但是,如果您提供自己的Web界面以生成報告,則可以控制該過程。您可以使用web services從SSRS獲取報告。然後,您可以在代碼中使用服務器端Excel操作工具(如SoftArtisans OfficeWriter)open and post-process電子表格並將其流式傳輸給用戶。

聲明:我SoftArtisans

相關問題