如果这是重复的,请告诉我。我找不到真正的答案..
发现这个,相关的,
Scientific notation when importing from Excel in .Net
但它已经好几年了
所以我正在阅读一个Excel文件,并DataTable
与C#
。
我的代码如下:
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
?
如果需要,我很擅长将所有内容都作为字符串...我已经使用了扩展属性,但似乎没有任何因素影响数据的读取。
寻找一种解决方案,否定我必须将每个单独的单元格添加到数据表
更新
我可以做的另一件事,在此期间,将科学记数法转换为小数,然后检查。虽然理想情况下我想首先在没有符号的情况下引入。