使用C#中的Excel电子表格中的数据

时间:2009-08-20 00:03:28

标签: c# excel

我在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吗?

(我无法使用第三方库/模块执行此任务。)

2 个答案:

答案 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;