假設我在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的某些限制還是什麼?爲什麼我們不能有一致的行爲,即要麼使得所有對計算機文檔的查看文檔都很敏感或者不要,爲什麼實際行爲在兩者之間?