我在Excel电子表格中有数据,该电子表格包含10,000行,结构如下:
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吗?
(我无法使用第三方库/模块执行此任务。)
答案 0 :(得分:0)
我建议使用ADO.net将Excel工作表中的数据提取到数据集中 您可以对DataTable进行过滤/排序,也可以使用LINQ。
答案 1 :(得分:0)
您可以按照here所述将Excel数据加载到数据集中,然后就可以使用
这样的代码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数据集
var query = from c in ds.Tables[0].AsEnumerable()
where c.Field<string>("Country") == "USA" &&
where c.Field<string>("State") == "CA"
select c;