OleDB Читать Excel десятичное значение - PullRequest
0 голосов
/ 11 октября 2010

Я использую OleDB Ace 12 для чтения листа Excel (xslx), содержащего столбец с десятичными значениями. Когда я открываю лист Excel на моем ПК, десятичное значение корректно форматируется как 1.850,50 (культура NLD с запятой в качестве десятичного разделителя)

Когда я считываю лист Excel с использованием OleDB (C # 4.0), строковое значение этого поля всегда равно 1,850.50 (формат США)

Я пытался установить языковой стандарт для набора данных, который я заполняю, установить культуру текущей нити и многое другое, но набор данных, заполненный адаптером OleDB, всегда возвращает десятичные знаки в формате США.

Можно ли изменить способ форматирования значения при чтении? Или это всегда американский формат, несмотря ни на что?

1 Ответ

0 голосов
/ 11 октября 2010

Я думаю, вы получите только американский формат.Вы можете конвертировать его в код:

string strFloatingNumber = "24.45"; //a floating point number in English notation
double output = 0.0; //output double number which will hold the value
double.TryParse(strFloatingNumber, out output); //convert without exception - assuming no error
MessageBox.Show(output.ToString("N2", CultureInfo.CreateSpecificCulture("nl-NL")));
...