使用ArcGIS Engine和C#从Excel创建Shp文件教程

5星 · 超过95%的资源 需积分: 33 148 下载量 127 浏览量 更新于2024-08-02 3 收藏 391KB PDF 举报
"根据Excel表格建立Shp文件的ArcGIS Engine开发教程,由三峡大学土木水电学院肖泽云提供,适用于ArcGIS Engine初学者。教程涵盖了通过C#编程语言,从Excel导入数据,创建新的Shp文件,并添加几何和属性数据的步骤。" 在ArcGIS Engine开发中,将Excel表格转换为Shapefile (Shp) 文件是一个常见的需求,特别是在处理地理空间数据时。本教程主要讲解如何实现这一过程,尤其适合那些刚开始接触ArcGIS Engine开发的人员。 首先,我们需要导入Excel数据表。有两种方法可以实现:通过OleDb数据源或者直接应用Excel对象。推荐使用OleDb数据源,因为这种方法不仅限于Excel,还能兼容Access和SQL数据库。以下是使用OleDb连接Excel的基本步骤: 1. 定义OleDbConnection对象,如`OleDbConnection oledbcConnection`。 2. 创建一个OpenFileDialog控件,让用户选择Excel文件。 3. 设置文件过滤器,允许用户仅选择Excel或CSV文件。 4. 当用户选择文件后,获取文件路径,并构建OleDb连接字符串,例如:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";ExtendedProperties=Excel8.0;"。 5. 打开OleDb连接:`oledbcConnection.Open();` 接下来,我们要创建一个新的Shp文件,这通常涉及以下步骤: 1. 初始化一个FeatureClassDescription对象,定义Shapefile的几何类型和字段信息。 2. 使用WorkspaceFactory创建一个新的FileGeodatabase对象。 3. 在FileGeodatabase上创建一个新的FeatureClass。 4. 将Excel中的数据加载到新创建的FeatureClass中。 加载数据包括几何数据(如点、线、多边形的坐标)和属性数据。对于点数据,需要读取Excel中的x和y坐标值,并创建Point对象。属性数据可以通过遍历Excel表中的列,将每行数据作为新Feature的属性值,然后使用FeatureClass的Insert方法插入。 在C#中,这部分可能涉及到DataTable、DataRow和Feature对象的使用。例如,读取Excel数据到DataTable,然后迭代每一行,创建一个Feature,设置其Geometry属性为Point对象,并设置其他属性字段,最后使用FeatureClass的InsertRow方法将Feature添加到Shapefile中。 完成上述步骤后,记得关闭连接并保存更改。在C#中,这通常通过关闭OleDb连接和释放其他资源来实现。 此外,提供的链接(http://ww.brsbox.com/xwebsite)可能包含源代码示例,这对于初学者来说是非常宝贵的资源,可以辅助理解并实践这个过程。 本教程通过C#和ArcGIS Engine展示了如何从Excel数据表创建Shp文件,这在地理信息系统领域中非常实用,尤其是当需要快速地将非GIS数据转化为可进行空间分析的地理空间数据时。