private void btnImport_Click(object sender, EventArgs e) { ISpatialReferenceDialog2 pSpatialReferenceDialog2 = new SpatialReferenceDialogClass(); _spatialReference = pSpatialReferenceDialog2.DoModalCreate(true, true, true, 0); if (_spatialReference == null) { return; } IWorkspaceEdit pWorkspaceEdit = _targetWorkspace as IWorkspaceEdit; if (pWorkspaceEdit == null) { return; } pWorkspaceEdit.StartEditing(true); pWorkspaceEdit.StartEditOperation(); try { _pointList = new List <CustomPoint>(); _pointFeatureClassList = new List <CustomFeatureClass>(); _lineFeatureClassList = new List <CustomFeatureClass>(); if (chkHasCoordInfo.Checked == false) { GetSurveyPointList(); } ExcelToPointFeatureClass(); ExcelToLineFeatureClass(); foreach (CustomFeatureClass customFeatureClass in _pointFeatureClassList) { WorkspaceHelper.LoadFeatureClass(_map, customFeatureClass.FeatureClass); } foreach (CustomFeatureClass customFeatureClass in _lineFeatureClassList) { WorkspaceHelper.LoadFeatureClass(_map, customFeatureClass.FeatureClass); } } catch (Exception exception) { MessageBox.Show(exception.Message); } finally { pWorkspaceEdit.StopEditOperation(); pWorkspaceEdit.StopEditing(true); foreach (Process p in Process.GetProcessesByName("Excel")) { if (string.IsNullOrEmpty(p.MainWindowTitle)) { p.Kill(); } } } }
private IFeatureClass CreateFeatureClass(string tableName, esriGeometryType type, List <FieldMapping> fieldMappings) { IWorkspaceEdit pWorkspaceEdit = _targetWorkspace as IWorkspaceEdit; if (pWorkspaceEdit == null) { return(null); } if (pWorkspaceEdit.IsBeingEdited()) { pWorkspaceEdit.StopEditOperation(); pWorkspaceEdit.StopEditing(true); } IFeatureClass pFeatureClass = WorkspaceHelper.CreateFeatureClass(_targetWorkspace, tableName, type, _spatialReference); FeatureClassUtil.AddZ(pFeatureClass); FeatureClassUtil.AddM(pFeatureClass); foreach (FieldMapping fieldMapping in fieldMappings) { switch (fieldMapping.Type) { case esriFieldType.esriFieldTypeInteger: FeatureClassUtil.AddIntField(pFeatureClass, fieldMapping.Name, fieldMapping.Length, null, fieldMapping.AliasName); break; case esriFieldType.esriFieldTypeDouble: FeatureClassUtil.AddDoubleField(pFeatureClass, fieldMapping.Name, fieldMapping.Length, fieldMapping.Precision, null, fieldMapping.AliasName); break; case esriFieldType.esriFieldTypeString: FeatureClassUtil.AddStringField(pFeatureClass, fieldMapping.Name, fieldMapping.Length, null, fieldMapping.AliasName); break; case esriFieldType.esriFieldTypeDate: FeatureClassUtil.AddDateField(pFeatureClass, fieldMapping.Name, fieldMapping.AliasName); break; default: break; } fieldMapping.IndexTargetField = pFeatureClass.FindField(fieldMapping.Name); } return(pFeatureClass); }