2010-10-11 86 views
0

我使用OleDB Ace 12讀取包含具有十進制值的列的Excel(xslx)工作表。當我打開Excel工作表我的電腦上一個十進制值正確格式化爲1.850,50(NLD文化與逗號作爲小數點分隔符)OleDB讀取Excel十進制值

當我讀出使用OLEDB(C#4.0)的Excel工作表,將字符串值這個字段始終是1,850.50(美國格式)

我試着設置DataSet的Locale我填充,設置currentthread的文化和更多,但DataSet填充OleDB適配器總是返回美國格式化的小數。

我可以在閱讀時更改其格式化值的方式嗎?或者無論如何它總是美國格式?

回答

0

我想你只會得到美國格式。您可以將其轉換爲代碼:

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"))); 
+0

是的,但測試不是15,11。這將是15.11,當使用de-DE文化解析時會引發異常。 – peter 2010-10-11 19:34:18

+0

我想你沒有得到提示:)更新我的答案。 – Nayan 2010-10-12 02:54:15

+0

但'1,850.50'將不起作用。我可以替換逗號,你認爲這是唯一的解決方案?我希望我能閱讀特定的文化,但不幸的是,這似乎是不可能的。謝謝你的幫助。 (順便說一句,我需要十進制,不是雙) – peter 2010-10-12 08:18:29