2011-07-19 26 views
1

我正在爲我的僱主提供一份報告,其中最終產品是SSRS報告,但幾乎總是會將其導出到Excel以供進一步操作。在這份報告中,有一行實際上只是基於其他單元格值的一系列計算。Reporting Services不生成Excel公式

我讀過Reporting Services可以「計算出」Excel公式,並且只要您的表達式的單元格值不包含數據庫字段引用,只報告項目引用,就會生成並插入它們。

那麼,我已經做到了這一點,我仍然無法讓公式通過。我已經嘗試過以我能想到的方式呈現報告,並且我嘗試修改DeviceInfo參數以包含設置爲FalseOmitFormulas選項,但我仍然空着。我甚至嘗試用硬編碼值創建一個非常簡單的基於表格的報表,即使這樣我也沒有獲得公式。

下面是從我的報告的樣本表達:

=(ReportItems!Balance2.Value + ReportItems!Supply3.Value) - ReportItems!Demand3.Value 

我的環境是VS 2008(全補丁/更新)2008年SSRS運行(不完全修補)。我已經和服務器管理員談過了,他說它正在運行CU1(我想,記不清了)。我們公司的Excel是版本2007.

我真的在我的智慧結束在這裏,所以我希望有人在那裏處理過,並可以給我一個答案。謝謝!

回答

1

我找到了一種方法要做到這一點,如果你知道單元格地址,雖然這有點破解。在您的報告中,輸入單元格公式由撇號前面的字符串時,「這是文本」,在Excel中轉​​義字符:

="'=A2+A3" 

當您導出到Excel中的撇號將是無形的,但公式顯示爲文本:

=A2+A3 

現在,如果你做一個查找/替換和刪除撇號(什麼也沒有替換),該公式將計算正確。

+0

如何使行號自動增量? – BobNoobGuy

+0

在您的查詢中,您可以使用ROW_NUMBER()OVER(ORDER BY [ID])。 –

-1

對於Excel內容,SSRS有很多限制。正如你所提到的Excel公式甚至圖表,例如呈現爲圖像而不是Excel圖表。

看到你提到你想要一個可以在SSRS中工作的報告,但總是會被導出到Excel中,你應該真的結帳OfficeWriter在http://www.officewriter.com/

OfficeWriter可以與SSRS集成,並允許您導出完全保真的Excel文檔。我的意思是你可以有Excel公式,而不是渲染的SSRS公式,或真正的Excel圖表不是渲染圖像。如果數據在文件被SSRS呈現並打開後發生更改,則這些類型的內容不會更改。

如果最終用戶發生「進一步操縱」,那麼這很好,他們可以更改數字,公式將重新計算並更新圖表。

如果「進一步操作」是編程式,那麼您可以使用OfficeWriters API繼續操作文檔。

你可能想看看,我討厭你的智慧。

免責聲明:我是OfficeWriter的開發人員之一。