2011-12-22 60 views
1

我使用SSRS構建可以導出爲多種類型(PDF,XLS,CSV ...) 該報告由表中的一些列具有的數值,如緯度的報告或經度,像-1,234567SSRS CSV導出數值

當出口到CSV和在Excel中打開,這些數值鬆「」

是否有可能,所以它保存爲使這個值作爲報表生成器文本它沒有在csv文件上格式化更改?

TKS

回答

3

一個簡單的方法來做到這一點是使用格式表達,而不是直接訪問您的報告域。

例如

=Format(Fields!OrderPrice.Value, "#,###.00") 

,而不是..

=Fields!OrderPrice.Value 

這將迫使數值轉換成字符串。數字格式將確保您保留逗號。當通過CSV導出時,該值將用引號括起來,這意味着格式化逗號不會使解析器跳轉。

嚴重警告 此解決方案並不完美。問題是,儘管您在CSV文件中獲得了期望的結果,但您生成的任何SSRS Excel導出都會將該字段標記爲文本內容,這意味着您的用戶每次打開該報告時都必須告訴Excel不同。

同樣,如果有人在Excel中打開您的CSV文件,同樣的事情會發生。 Excel不夠聰明,不能認識到引號中的內容實際上是一個數字,它會再次將該列視爲文本。

現實情況是CSV是一種有限的格式。它主要關注的是內容 - 它沒有傳達格式化信息,即使有可能爲個別導出例程提供更多「指導」,CSV文件格式的固有限制意味着某種妥協(或額外的工作)在Excel結束)必須被做。

+0

謝謝你的詳細解答。非常有見地。 – 2014-10-15 03:39:51