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

时间:2011-12-28 14:25:27

标签: c# linq excel dataset

我使用此函数从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),
    }

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

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

@GertArnold:

1 =&GT; M; 2801;罗纳德

2 =&GT; M; 3005; Soufian

3 =&GT; F ; 2009年;伊丽莎白

121 =&gt; M; G125; khaled =&gt; le code est lu null

1 个答案:

答案 0 :(得分:0)

我制作了第4列,格式为=&gt; = TEXTE(B1;“####”)并对所有colmne单元格进行相同的格式化,我从此列中获取代码并且它可以正常工作