从c#读取excel,将长数字转换为指数值

问题描述 投票:0回答:1

我正在读取的 Excel 有一列超过 8 位的长数值。它也可以从

0
开始,例如
003787677
。我的例子是
173370148, 142350093

数据集中的值对于长度超过 8 位的列存在问题,它将它们转换为指数值,如

1.4235e+008

我不希望将此值转换为指数或将其转换回正确值的方法。

我无法将 Excel 列格式更改为数字,因为我的值可能前面以 0 或 00 开头。所以我使用文本作为列格式单元格

我在 Windows 2003 服务器计算机 32 位上读取 .xls 时使用以下类型的连接:

provider = "Microsoft.Jet.OLEDB.4.0;Data Source=@filename;Extended Properties='Excel 8.0;HRD=Yes;IMEX=1";

使用以下语句读取Excel:

OleDbDataAdapter oleAdpt = new OleDbDataAdapter("SELECT * From [Sheet1$]", con);  
oleAdpt.Fill(dtexcel);
c# excel long-integer numeric exponential
1个回答
0
投票

为避免转换为指数,请勿直接将单元格值分配给双精度或整数数据类型。使用字符串,然后在代码中进行转换。

© www.soinside.com 2019 - 2024. All rights reserved.