与从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。