从 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 2008 中将报告导出到 excel 时合并或空白列