我正在读取的 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);
为避免转换为指数,请勿直接将单元格值分配给双精度或整数数据类型。使用字符串,然后在代码中进行转换。