SQL Server 2008 R2 Reporting Services 보고서를 Excel로 내보내려고합니다. 보고서에는 날짜 열이 있습니다. 날짜는 SQL 서버에 datetime으로 저장됩니다. 보고서의 언어는 =User!Language
이고 날짜 셀의 형식은 d
입니다. 보고서를 PDF로 내보내거나 렌더링 할 때 브라우저에서 요청한 로캘로 모든 내용이 표시됩니다 (Accept-Language
).현지화가있는 Excel의 SSRS 날짜 형식
그러나 Excel로 렌더링하는 경우 형식이 갑자기 변경되어 예를 들어 General ([$-10409]M.T.JJJJ)
(독일어로 Excel의 로캘은 de-AT
으로 설정되고 브라우저 로캘은 en-US
)입니다.
즉, Excel에서 날짜가 완전히 잘못된 형식으로 표시됩니다. 일, 월 및 년의 순서는 하드 코드되며 구분 기호 만 현재 로캘에서 제공됩니다. 따라서 d-m-yyyy
국가에서 생성 된 보고서는 날짜 형식이 다른 국가에서 여전히 일 - 월 - 연도로 표시되기 때문에 다른 OS 언어간에 보고서를 공유하는 것은 거의 불가능합니다. 따라서 m/d/yyyy
형식의 날짜를 예상하는 사람은 d/m/yyyy
이됩니다.
12 일 이상 날짜가없는 경우 특히 위험합니다. 명백한 오류가 없기 때문에 표시된 날짜를 잘못 읽게 될 가능성이 큽니다.
Excel에서 수동으로 셀 형식을 날짜로 설정하면 모든 항목이 정상적으로 작동하고 형식이 OS 로캘에 따라 변경됩니다.
Excel 파일 자체를 편집 할 필요없이 Excel에서 날짜 형식으로 셀을 강제 설정할 수 있습니까?
P.S : 숫자도 숫자로 서식이 지정되지 않지만 문제가되지는 않지만 여전히 잠재적으로 오류의 원인 일 수는 [$-10409]#.##0,00;-#.##0,00
입니다. (보고서의 형식은 N2
입니다.)
OS 언어를 바꿀 수 있습니까? – glh
OS 언어를 변경하면 어떻게 알 수 있습니까? 셀 자체가 날짜 형식으로되어 있으면 Excel은 올바른 언어 종속 형식으로 셀을 표시합니다. 물론 SSRS가 일, 월 및 년의 위치가 정적 인 사용자 정의 형식의 셀을 생성하는 데는 도움이되지 않습니다. – urbanhusky
저는 서버 배경이 아니지만 문제가있는 것 같습니다. 서버에는 사용자 언어에 대한 다른 아이디어가있는 것 같습니다. – glh