Мне нужно написать дубликаты в файл csv в приложении wpf mvvm. Эти двойники изначально являются строками, установленными в инвариантной культуре. я получаю их, как это из приложения на стороне сервера и анализировать их сCultureInfo.CurrentCulture не содержит правильного значения -> проблемы с числовой формулой
bool result = double.TryParse(row[0], NumberStyles.Any, CultureInfo.InvariantCulture, out value);
Однако, когда я пытаюсь записать их в файл CSV (либо с "" + value
, value.ToString()
, value.ToString(CultureInfo.CurrentCulture)
или value.ToString(System.Globalization.CultureInfo.CurrentCulture)
), текущая культура, кажется, EN-US, тогда как он должен быть NL (голландский). Мои настройки браузера, настройки окон, настройки клавиатуры ... установлены на голландский, поэтому, когда я проверяю свои региональные настройки номера, он содержит десятичный разделитель «,», но мое приложение разделяет десятичные знаки на «.». так как культура EN-US.
Поэтому, когда я пишу свой файл csv и открываю его в excel, он содержит десятичные значения, разделенные символом «.». вместо ",". Таким образом, мой excel не видит эти значения в виде десятичных значений, поскольку они не находятся в культуре excel number/my settings settings culture.
Кто-нибудь знает, что происходит?
Редактировать
Просто чтобы быть ясно. Я не ищу способ установить культуру жестко закодированной. Мне особенно нужна культура, установленная в окнах, которую использует excel.
Вы пробовали Thread.CurrentThread.CurrentUICulture? Что там? –
@GerrieSchenck 'Thread.CurrentThread.CurrentUICulture' повлияет на загрузку ресурсов, а не на форматирование. Наверное, вы имеете в виду «Thread.CurrentThread.CurrentCulture»? –
@Fredrik Mörk Я не знал этого, я обычно использую его для форматирования. –