【问题标题】:SSRS Report Export to excel issue for HH:mm:ss formatSSRS 报告导出到 HH:mm:ss 格式的 excel 问题
【发布时间】:2019-01-30 14:02:26
【问题描述】:

我必须将 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 reporting-services


    【解决方案1】:

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

    '02:38
    

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

    【讨论】:

      【解决方案2】:

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

      我还将使用 12/31/1899 作为您的开始日期。这将允许您在 Excel 中一起添加时间。使用 00:00 作为开始日期似乎应该可以工作,但在测试时却不行。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多