从excel文件中读取字段类型错误

本文关键字:取字段类型 错误 excel 文件 | 更新日期: 2023-09-27 18:18:53

我使用这个函数从xls(2003)文件中读取信息

var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", path);
var adapter = new OleDbDataAdapter("SELECT * FROM [page1$]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "anyNameHere");
var data = ds.Tables["anyNameHere"].AsEnumerable();
List<client> query = data.Where(x => x.Field<string>(1) != string.Empty)
    .Select(x =>
    new client
    {
        Code = x.Field<string>(1) != null ? x.Field<string>(1) : "None",
        name = x.Field<string>(2),
    }

文件中的一些代码具有Int格式,如"2100"和其他如"G200",但字段(1)被读取为double,无法读取第二类型(强制转换错误)。我看了看xls文件和列在标准类型,即使我使它成为文本,但我有同样的问题。

PS:我一步一步地使用,我发现数据具有第二个类型NULL的字段代码。

1=> M;2801;罗纳德。

2=> M;3005;Soufian

3=> F;2009;伊丽莎白

.

.

121 => M;G125;

从excel文件中读取字段类型错误

我用格式=> = textte (B1;"####")创建了第4列,并为所有列单元格设置了相同的格式,我从该列获得了代码,它工作