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