2013-02-27 76 views
3

我試圖將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

+0

你可以改變os語言嗎? – glh 2013-02-28 08:28:05

+0

更改操作系統語言是我對此的瞭解。如果單元格本身格式化爲日期,則Excel將以正確的語言相關格式顯示單元格。當然,SSRS生成具有自定義格式的單元格是沒有幫助的,其中日,月和年的位置保持不變。 – urbanhusky 2013-02-28 11:33:28

+0

我不是來自服務器背景,但似乎是這個問題。服務器似乎有你的用戶語言的其他想法。 – glh 2013-02-28 11:44:45

回答

0

我已經設法解決similiar問題。解決方案很簡單。 在報告編輯器中,打開設計視圖並選擇要編輯的字段,單擊鼠標右鍵並選擇ExpressionTextbox properties。其餘部分在Excel編輯器中非常直觀。

+0

對不起,但我無法看到日期字段的格式是Excel導出中區域設置/語言相關的問題的解決方案。雖然可以將'Number'設置中的'Textbox屬性'中的格式設置爲'Date',但這不會導致單元被格式化爲'Date',而是格式爲具有硬編碼日期格式的'General'。 – urbanhusky 2013-10-24 08:27:25

+0

它是硬編碼的日期格式,因爲在其他情況下,它將嚴重依賴於語言環境信息。不幸的是,除非您爲SSRS編寫自己的渲染機制,否則沒有其他選擇。在Excel文件中使用 – 2013-10-24 09:13:38

+0

我期望日期是語言環境/語言相關的。出於這個原因,Excel可以選擇將單元格格式化爲「Date」。如果日期是「01.12.2013」​​或「12.01.2013」​​,並且沒有顯示是「m.d.yyyy」還是「d.m.yyyy」,則會有很大差異。對於商業報告而言,這可能會造成災難性後果。 – urbanhusky 2013-10-24 10:38:42