带有本地化的Excel中的SSRSdate格式

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

然而,渲染到Excel时,格式会突然改变,例如, General ([$-10409]MTJJJJ) (德语Excel,OS设置为de-AT的语言环境,browser-locale是en-US )。

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

如果date不超过12天,那么这是特别危险的,即:由于没有明显的错误,所以很可能误读所显示的date。

当在Excel中手动设置单元格格式时,一切似乎都很好,格式随OS的语言环境而变化。

有没有可能强制单元格被格式化为Excel中的date,而不必编辑Excel文件本身?

PS:数字也没有格式化为一个数字,但作为[$-10409]#.##0,00;-#.##0,00 – 这是一个问题较less,但仍可能是错误的来源。 (报告格式是N2

我设法解决类似的问题。 解决scheme相当简单。 在报告编辑器中,打开“devise”视图并select要编辑的字段,单击鼠标右键并select“ Expression或“ Textbox properties 。 其余部分在Excel编辑器中非常直观。