2017-10-31 15 views
0

DataTable을 통해 워크 시트를 추가 할 때 날짜 형식이 응용 프로그램의 로캘/문화를 따르지만 컴퓨터에서 가져 오는 것으로 보입니다.DataTable의 ClosedXML Worksheet가 Culture를 따르지 않습니다.

string culture = "en-GB"; 
var newCulture = new CultureInfo(culture); 
Thread.CurrentThread.CurrentCulture = newCulture; 
Thread.CurrentThread.CurrentUICulture = newCulture; //probably unnecessary? 
CultureInfo.DefaultThreadCurrentCulture = newCulture; 

// ... select myDateColumn, myIntCol, myString 
workBook.AddWorksheet(myDataTableThatContainsQueryResults, tabName); 

지금, 당신은 '31/10/2017'을 있어야 en-GB 로케일의 간단한 날짜 형식을 사용하여 형식을 첫 번째 열 (myDateColumn)를 기대하지만, 대신 '10/31/2017'로 나오고.

DataTable에서 로캘을 확인한 후에 SQLDataAdapter에서 해당 로캘을 확인했는데 중첩 된 날짜 형식과 마찬가지로 정확합니다. 여러 쿼리가 있으며 날짜가 미리 알려지지 않습니다.

누군가가 제공 할 수있는 어떤 방향으로 생각해보십시오! ClosedXML의 GitHub의의의 repo에 몇 가지 검사를보고 내가 의견을 명성이없는

답변

0

...

, 도서관이 문화 통합 문서를 인스턴스화하기 전에 설정 될 것으로 예상 것으로 보인다. (https://github.com/ClosedXML/ClosedXML/blob/c2d408b127844ea3d4a5f6b060c548c953b6bcf3/ClosedXML_Tests/Excel/CalcEngine/LookupTests.cs#L17)

private XLWorkbook workbook; 

    [OneTimeSetUp] 
    public void Init() 
    { 
     // Make sure tests run on a deterministic culture 
     System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); 
     workbook = SetupWorkbook(); 
    } 

그 코드의 경우 경우 그것은 당신의 질문에서 나에게 명확하지 않다.

이미 해당되는 경우 Github에 @ ClosedXML 버그를 열어야합니다.

+0

SQLAdapter 결과를 기반으로 통합 문서 당 여러 문화권을 사용하려고합니까? ClosedXml이이를 지원하는지 모르겠다. (코드 파기가 더 필요하다) –

+0

아니요, 전체 통합 문서에 대해 단일 문화권을 사용하고 있습니다. 새 통합 문서를 인스턴스화하기 전에 설정됩니다. –

+0

@ArisBerard 문제에 대한 해결책을 찾을 수 있었습니까? –