SSRS报告导出为HH:mm:ss格式的excel问题

时间:2019-01-30 14:02:27

标签: excel reporting-services

我必须将SSRS报告导出到Excel。在我的SSRS报告中,列中包含实际值,根据我的要求,我将其转换为不同行的Decimal,Percentage和HH:mm:ss格式。

我使用以下格式进行mm:ss转换。

Format(DateAdd(“ s”,Fields!count.Value,“ 00:00”),“ mm:ss”)

此格式在报表的“预览模式”下工作正常。但是当我导出到excel时,这些值将变为负数。

例如,预览模式下的“值”为02:38,导出到Excel后为-02:38(但实际值显示为负十进制值)。

为解决此负值问题,我使用了以下格式。

= DateAdd(DateInterval.Day,-1,CDATE(DateTime.ParseExact(“ 1/1/1900”&(TimeSpan.FromSeconds(Fields!count.Value).ToString()),“ d / M / yyyy HH:mm:ss“,System.Globalization.CultureInfo.InvariantCulture)))

这种格式在导出excel后给出正确的值,但是问题出在我的excel报告中任何DECIMAL值都显示为#Error的地方。

因此,在导出到Excel时,是否有解决方案来保留mm:ss的格式。

2 个答案:

答案 0 :(得分:0)

Excel对于从SSRS导出中接受的格式有限制。例如,您不能在数字前加0。过去,我为此使用的解决方法是在值前面连接一个撇号。例如,在SSRS中,它将显示:

'02:38

这将强制Excel完全按照单元格中的格式显示该值。如果您在公式框中查看,它确实显示了前撇号,但是您仍然可以在公式中使用它,就好像它是常规值一样。

答案 1 :(得分:0)

我将使用FORFORM PROPERTY来格式化时间,而不是FORMAT FUNCTION。

我还要使用1899年12月31日作为开始日期。这将使您可以在excel中一起添加时间。使用00:00作为开始日期,好像应该可以,但是在测试时却不能。

=DATEADD("s", Fields!count.Value, CDATE("1899-12-31"))