3

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

然而,当渲染到 Excel 时,格式突然更改为General ([$-10409]M.T.JJJJ)(德语 Excel,操作系统的区域设置为de-AT,浏览器区域设置为en-US)。

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

如果没有超过 12 天的日期,这尤其危险 - 即:很可能会误读显示的日期,因为没有明显的错误。

迄今为止,在 Excel 中手动设置单元格格式时,一切似乎都很好,并且格式会随着操作系统的区域设置而变化。

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

PS:数字也不是数字格式,而是[$-10409]#.##0,00;-#.##0,00- 这不是一个问题,但仍然可能是错误的来源。(报告格式为N2

4

1 回答 1

-1

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

于 2013-10-23T09:09:54.147 回答