使用C#将Excel读入数据表时会错误地格式化数字

时间:2016-02-19 15:13:25

标签: c# excel datatable

如果这是重复的,请告诉我。我找不到真正的答案..

发现这个,相关的,

Scientific notation when importing from Excel in .Net

但它已经好几年了

所以我正在阅读一个Excel文件,并DataTableC#

我的代码如下:

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

通过代码,我对一些内容进行了验证。我正在使用RegEx

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

例如,我有0.000083,并且正在以8.3e-005

的形式阅读

那么 - 如何读取excel文件,并保留原始0.000083

如果需要,我很擅长将所有内容都作为字符串...我已经使用了扩展属性,但似乎没有任何因素影响数据的读取。

寻找一种解决方案,否定我必须将每个单独的单元格添加到数据表

更新

我可以做的另一件事,在此期间,将科学记数法转换为小数,然后检查。虽然理想情况下我想首先在没有符号的情况下引入。

0 个答案:

没有答案