【问题标题】:ssrs csv export numeric valuesssrs csv 导出数值
【发布时间】:2011-12-22 15:41:43
【问题描述】:

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

当导出为 csv 并在 excel 中打开时,这些数值会丢失“,”

是否可以在报告生成器中将此值作为文本保存,而不会对 csv 文件进行格式更改?

tks

【问题讨论】:

    标签: reporting-services csv number-formatting


    【解决方案1】:

    一个简单的方法是使用格式表达式而不是直接访问您的报告字段。

    例如

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

    而不是..

    =Fields!OrderPrice.Value
    

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

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

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

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

    【讨论】:

    • 感谢您的详细解答。很有见地。
    猜你喜欢
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多