将报表表单SSRS导出到Excel仅将小数添加到0.00值

问题描述 投票:0回答:1

我有一个简单的Reporting Services报告,其中有几个来自存储过程的DECIMAL(19,4)值。我用“N2”格式化这些列,因为我总是想要2个小数。格式在报告中正常工作。但是,只要我将其导出到Excel,在其中一列(右边的最后一个,是否重要?)中,小数位数从2增加到15,但仅当单元格中的值为0时(原始格式为0.00,当然)。

如果单元格为空,则它变为空,即可。如果它与0不同,则显示正确。只有值0变为0.000000000000000

我也尝试了格式“0.00”,但问题仍然存在。

当我打开Excel时,它说它打开它有问题。具有这种奇怪的细胞都有绿色三角形信号错误。它说“此单元格中的数字格式为文本或前面有撇号”。无论我对这些值有什么看法,我认为我也在对同一列的所有其他值进行处理,因此我无法理解为什么0被区别对待。

如果我强制存储过程在返回0时返回1,则它可以正常工作。

[编辑]如果我在St.Proc强制演员到DECIMAL(19,4)。对于这个值(来自算术计算),它工作!

所以我已经解决了我的问题,但我仍然想知道为什么并删除一个可怕的用途CAST顺便说一句,我投射到十进制的代码基本上是:

CASE WHEN B = 0 THEN NULL ELSE 100.0*A/B END 

A和B DECIMAL(19,4)。只有当A = 0时才会出现问题。

excel reporting-services export decimal
1个回答
0
投票

在Tablix中,按如下方式编写表达式

=CDbl(Fields!YourFeild.Value)

然后转到文本框属性>数字,并在类别编号和小数位下选择。现在,如果将其导出到Excel,您将获得所需的结果。您总是需要这两者的组合才能在Excel中获取格式。

© www.soinside.com 2019 - 2024. All rights reserved.