我使用此函数从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
答案 0 :(得分:0)
我制作了第4列,格式为=&gt; = TEXTE(B1;“####”)并对所有colmne单元格进行相同的格式化,我从此列中获取代码并且它可以正常工作