与从Excel电子表格数据工作在C#
问题描述:
我有在具有10,000行具有以下结构的Excel电子表格数据:与从Excel电子表格数据工作在C#
Country | Region | City | Latitude | Longitude
-----------------------------------------------------
USA | CA | Los Angeles | 34°03′N | 118°15′W
...
前三列有效地构成了一个主键。我想这个数据加载到一个C#程序,这样我可以有表达概念类似如下:
string lat = someDataStructure["USA"]["CA"]["Los Angeles"].latitude;
我也想能够做的事情一样获得加州城市的所有纬度的列表。
从Excel中加载此数据的最佳方式是什么?我会使用Linq吗?
(我不能使用第三方库/模块完成这个任务。)
答
可以如所描述的here那么你可以使用代码等
string strExpr;
string strSort;
strExpr = "country = 'USA' AND Region = 'CA'";
strSort = "City DESC";
DataRow[] foundRows = ds.Table[0].Select(strExpr, strSort, DataViewRowState.Added);
或使用LINQ 2数据集Excel数据加载到数据集
var query = from c in ds.Tables[0].AsEnumerable()
where c.Field<string>("Country") == "USA" &&
where c.Field<string>("State") == "CA"
select c;
答
我会建议使用ADO.net从Excel工作表中的数据读取到数据集。
您可以在DataTable上进行过滤/排序,或者也可以使用LINQ。