使用C#将Excel读入数据表格格式不正确地格式化数字

请让我知道这是否重复; 我找不到实际的答案..

find这个,相关的一个,

在.Net中从Excel导入时的科学记数法

但是已经有几年了

所以我正在读一个Excel文件,用C#写入一个DataTable

我的代码如下:

 string conStr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0;HDR=NO;IMEX=1;\"", filePath); System.Data.DataTable fileData = new System.Data.DataTable(); using (OleDbConnection connection = new OleDbConnection(conStr)) { connection.Open(); if (string.IsNullOrEmpty(sheetName)) { sheetName = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[0]["TABLE_NAME"].ToString(); } string selectCmd = string.Format(sqlSelect, sheetName); using (OleDbCommand command = new OleDbCommand(selectCmd, connection)) using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { adapter.Fill(fileData); } } 

所以这读取一切,并填充我的DataTable

进一步通过代码,我对一些内容进行validation。 我为此使用了RegEx

但是,我遇到了一个问题,那里的数字被格式化为科学记数法或指数格式。

例如,我有0.000083 ,正在读入8.3e-005

所以 – 我怎样才能读取Excel文件,并保持原来的0.000083

如果需要的话,我可以把所有内容都作为一个string使用。我已经使用了扩展属性,但似乎没有影响数据读取的方式。

寻找一个解决scheme,否定我不得不将每个单独的单元格添加到数据表

UPDATE

另一件事,我可以做,同时,是将科学记数法转换成小数,然后检查。 虽然理想情况下,我想只是在没有记号的情况下进来。