首页 文章

Excel中的SSRS日期格式与本地化

提问于
浏览
3

我正在尝试将SQL Server 2008 R2 Reporting Services报告导出到Excel . 该报告有一列日期 . 日期作为日期时间存储在SQL Server中 . 报告的语言设置为 =User!Language ,日期单元格的格式为 d . 将报告导出/呈现为PDF时,所有内容都显示在浏览器发出的请求的区域设置中( Accept-Language ) .

但是,当渲染到Excel时,格式突然改变,例如, General ([$-10409]M.T.JJJJ) (德语Excel,OS的区域设置设置为 de-AT ,浏览器区域设置为 en-US ) .

这意味着Excel以完全错误的格式显示日期 - 日,月和年的顺序是硬编码的,只有分隔符来自当前的语言环境 . 这使得在不同操作系统语言之间共享报告几乎不可能,因为从一个国家/地区生成的报告仍将在具有不同日期格式的国家/地区显示为日 - 月 - 年(反之亦然) . 所以任何期望 m/d/yyyy 格式化日期的人都会得到 d/m/yyyy .

如果没有超过12天的日期,这尤其危险 - 即:由于没有明显的错误,它很可能误读了显示的日期 .

在Excel中手动设置单元格格式时,一切似乎都很好,格式随操作系统的区域设置而变化 .

是否有可能强制单元格在Excel中格式化为日期而无需编辑Excel文件本身?

P.S:数字也没有格式化为数字,而是格式为 [$-10409]#.##0,00;-#.##0,00 - 这不是问题,但仍可能是错误的来源 . (报告中的格式为 N2

1 回答

  • 0

    我设法解决类似的问题 . 解决方案相当简单 . 在报表编辑器中,打开“设计”视图并选择要编辑的字段,单击鼠标右键并选择 ExpressionTextbox properties . 其余的非常直观,如在Excel编辑器中 .

相关问题