从 s-s-rs 导出到 excel 时无法维护日期格式

Posted

技术标签:

【中文标题】从 s-s-rs 导出到 excel 时无法维护日期格式【英文标题】:Trouble maintaining date format when exporting from s-s-rs to excel 【发布时间】:2019-05-01 09:07:44 【问题描述】:

我正在使用 s-s-rS 从 Oracle 中提取数据 - 这包括一个名为“created”的日期时间字段 - 当我从 s-s-rs 生成一个 excel 文件时,我希望日期字段在 Excel 中显示为自定义 dd-mmm-yy - 但是它目前显示为general(在Excel中,右键单击字段,字段属性)

我已经在报告生成器中尝试过:

将数字格式更改为“N”

=CInt(Fields!FieldValue.Value)

将数字格式更改为dd-MMM-yy

在 s-s-rS 报告生成器中,我在 SQL 查询中创建了“已创建”字段,如下所示:

upper r(to_char(UNI72LIVE.PR_BLPU.CREATED_D,'dd-mon-yy')) as Created

这在报表生成器中正确显示,但在 Excel 中查看该字段时出现问题

【问题讨论】:

除了你的问题,没有理由像你一样使用 UPPER 函数。只需将 to_char 格式掩码的“mon”部分设为大写:to_char(UNI72LIVE.PR_BLPU.CREATED_D,'dd-MON-yyyy')。另外,使用 4 位数的年份。 20 年前,像我这样的人大军在这件事上大打出手。如果您还太小记不住,请查看“Y2K 问题”。 【参考方案1】:

如果您使用 to_char 将日期字段转换为字符串,则 Excel 将在该单元格中包含文本而不是日期,并且无法将其视为日期进行排序和计算。只需将日期字段作为 SQL 语句中的普通字段,使其保持为日期。

在您的单元格中,将 Value 属性设置为字段值(无格式):

=Fields!CREATED_D.Value

Format 属性设置为dd-MMM-yy,日期将以您想要的格式显示。

现在日期字段将作为实际日期值(而不是文本)导出到 Excel,并且日期的格式将正确设置。

【讨论】:

【参考方案2】:

你需要在文本框的表达式中应用日期格式,

=Format(CDate(Fields!FieldValue.Value), "dd-MM-yyyy")

AND您需要转到此文本框属性:文本框属性>数字>日期并选择格式日期

当然,您的语言必须设置为一个值。 这样,当您将其导出到 Excel 时,它应该可以工作。

【讨论】:

以上是关于从 s-s-rs 导出到 excel 时无法维护日期格式的主要内容,如果未能解决你的问题,请参考以下文章

从 s-s-rS 2008 R2 导出到 Excel 2010 时,数字不保持格式

s-s-rs 报告导出到 excel(公式)

s-s-rs 报告导出到 excel(公式)

在 s-s-rs 2008 中将报告导出到 excel 时合并或空白列

导出到 Excel 时,s-s-rS 表达式不会格式化为数字

报告服务 (s-s-rS):报告页脚在导出到 excel 时不起作用