ssrs csv导出数值

时间:2011-12-22 15:41:43

标签: reporting-services csv number-formatting

我正在使用SSRS构建一个可以导出为多种类型的报告(PDF,XLS,CSV ...) 该报告包含一个表格,一些列具有数字值,如纬度或经度,如-1,234567

当导出到csv并在excel中打开时,这些数值会松散','

是否可以在报表生成器中将此值设置为文本,以使其保持原样,而不对csv文件进行格式更改?

TKS

1 个答案:

答案 0 :(得分:3)

一种简单的方法是使用Format表达式而不是直接访问报表字段。

e.g。

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

而不是..

=Fields!OrderPrice.Value

这会将数值强制转换为字符串。数字格式将确保您保留逗号。通过CSV导出时,该值将用引号括起来,这意味着您的格式化逗号不会使解析器跳闸。

大量警告 这个解决方案并不完美。问题是虽然您在CSV文件中获得了所需的结果,但您生成的任何SSRS Excel导出都会将该字段标记为文本内容,这意味着您的用户每次打开该报告时都必须告诉Excel不同。

同样,如果有人在Excel中打开您的CSV文件,也会发生同样的事情。 Excel不够智能,无法识别引号中的内容实际上是一个数字,而且它会再次将该列视为文本。

现实情况是,CSV格式有限。它主要关注的是内容 - 它不传达格式化信息,即使可以为SSRS提供更多关于单个导出例程的“指导”,CSV文件格式的固有限制意味着某种妥协(或额外的工作)必须在Excel上完成。