我試圖將SQL Server 2008 R2 Reporting Services報告導出到Excel。該報告有一列日期。日期作爲日期時間存儲在SQL服務器中。 報告的語言設置爲=User!Language
,日期單元的格式爲d
。 將報告導出/呈現爲PDF時,所有內容都會顯示在瀏覽器發出的請求的區域中(Accept-Language
)。本地化的Excel中的SSRS日期格式
當渲染然而到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文件本身?
P.S:號碼也沒有格式化爲一個數字,但爲[$-10409]#.##0,00;-#.##0,00
- 這不是一個問題,但仍可能是錯誤的來源。 (報告格式N2
)
你可以改變os語言嗎? – glh 2013-02-28 08:28:05
更改操作系統語言是我對此的瞭解。如果單元格本身格式化爲日期,則Excel將以正確的語言相關格式顯示單元格。當然,SSRS生成具有自定義格式的單元格是沒有幫助的,其中日,月和年的位置保持不變。 – urbanhusky 2013-02-28 11:33:28
我不是來自服務器背景,但似乎是這個問題。服務器似乎有你的用戶語言的其他想法。 – glh 2013-02-28 11:44:45