假设我在Reporting Services模板中有一个日期值字段,例如: =CDate("2010.12.03")
,我将“d”格式应用于这个单元格,根据描述,“将反映报告的区域设置”。我使用英文生成报告,日期显示为12/03/2010
,这很好。现在,当我将此报告导出为excel时,我不知道发生了什么。SSRS 2008日期格式设置和导出为excel混淆
第一种情况:计算机的区域设置被设置为英语(美国)。当我打开Excel文档时,单元格中显示的值为12/03/2010
,如预期的那样。当我点击它时,我可以看到存储在单元格中的实际值是2010.12.03
,这看起来也很合理 - 某些格式应用于单元格,而不是简单地以文本形式导出。但是当我尝试弄清楚应用了什么类型的格式时,通过右键单击并选中“格式化单元格”,我看到格式是“常规”,即没有!怎么会这样 ?顺便说一下,这是Excel 2010,但是文件本身当然是.xls。
第二种情况,它变得更有趣:现在计算机的区域被设置为例如立陶宛,日期格式为2010.12.03
。我打开相同的文件并查看12.03.2010
。现在,这根本没有任何意义。导出很多次,我遇到过,有时单元格在excel中格式化为[$-10409]m.d.yyyy
(在Custom部分下)。这是什么,10409是什么意思?最奇怪的部分:如果我关闭文档而不保存,将计算机区域更改为英文(美国),重新打开文档,格式现在为[$-10409]m/d/yyyy
!这怎么可能 !??
基本上同样的事情发生在数字和千位/小数分隔符 - excel使用计算机的区域来格式化这些,但单元格的实际格式可以是类似于[$-10409]#,##0.00;-#,##0.00
或常规 - 再次,根据区域电脑的风向和外面的温度。
我的问题是,首先,什么_ _正在进行?其次,excel文档应该如何按照规范行事,即在BIDS设计的日期文本框中选择“d”格式的格式“将反映报告的区域设置”的含义是什么意思?这是否意味着格式将取决于报告的语言,并且结果在世界上的所有计算机上看起来都是一样的(这是合理的,因为这是其他格式的行为方式,即如果将日期导出为pdf,它始终保持不变)?如果不是,这在excel中似乎是部分情况,为什么导出的日期单元格没有区域日期格式,即通常在Excel中使用的日期格式,即根据计算机的区域格式化日期格式的日期格式?
这些是excel的某些限制还是什么?为什么我们不能有一致的行为,即要么使得所有对计算机文档的查看文档都很敏感或者不要,为什么实际行为在两者之间?