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



我必须将SSRS报告导出到excel。在我的 SSRS 报告中,列具有实际值,我正在根据我的要求将其转换为不同行的小数、百分比和 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的格式。

Excel 对

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

'02:38

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

我会使用 FORMAT 属性来格式化时间,而不是 FORMAT 函数。

我也会使用 12/31/1899 作为您的开始日期。这将允许您在 excel 中一起添加时间。使用 00:00 作为开始日期似乎应该有效,但在测试时却不起作用。

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

最新更新