通过linq阅读excel,如何转换列
本文关键字:转换 何转换 linq 阅读 excel 通过 | 更新日期: 2023-09-27 18:10:29
我正在阅读一个excel文件,得到"指定的cast是无效的"我注意到的是excel中的ID和ParentID列有小数,例如1235是1235.0,我相信这是导致问题的原因。我试过投,但没有成功。
var ds = new DataSet();
adapter.Fill(ds, "ErrorCodesExcel");
System.Data.DataTable data = ds.Tables["ErrorCodesExcel"];
var dataParsed = ds.Tables["ErrorCodesExcel"].AsEnumerable();
var query = dataParsed.Select(x =>
new ErrorCode
{
ID = x.Field<int>("ID"),
ErrorDescription = x.Field<string>("ErrorDescription"),
ErrorDescriptionWithParent = x.Field<string>("ErrorDescriptionWithParent"),
ParentID = x.Field<int>("ParentID"),
});
在Excel中,单元格值是string
或double
,而DataReader
不会为您进行转换,因此您必须从阅读器中读取double
并转换为int
(转换是一种方式):
ID = (int)x.Field<double>("ID"),
ErrorDescription = x.Field<string>("ErrorDescription"),
ErrorDescriptionWithParent = x.Field<string>("ErrorDescriptionWithParent"),
ParentID = (int)x.Field<double>("ParentID"),