当前位置: 首页 > news >正文

网站代理浏览器7网站模板加后台

网站代理浏览器7,网站模板加后台,网页设计尺寸用1440还是1920,南通精诚建设集团有限公司网站在工作中可能会遇到这样的场景#xff1a;有多个GDB要素、表格#xff0c;或者是SHP文件#xff0c;需要给这个要素或表添加相同的多个字段。 在这种情况下#xff0c;手动添加就变得很繁琐#xff0c;于是就做了这个工具。 需求具体如下图#xff1a; 左图是待处理数据…在工作中可能会遇到这样的场景有多个GDB要素、表格或者是SHP文件需要给这个要素或表添加相同的多个字段。 在这种情况下手动添加就变得很繁琐于是就做了这个工具。 需求具体如下图 左图是待处理数据有shp文件也有gdb文件。 右图是待添加字段的属性结构描述表有4个参数【字段名称、字段别名、字段类型、字段长度】。 文件格式为Excel文章末尾的下载链接会附上示例Excel 工具的执行流程为依次为左图待处理的数据添加右图定义好的字段。 一、要实现的功能 如上图所示点击【字段处理】组【字段综合】面板下的【添加字段批量】工具。 在弹出的工具框中分别输入参数 1、包含要素或表格的文件夹。这里可以支持SHP文件和GDB文件但不支持MDB。 2、包含字段属性的Excel表。这个表格的格式是固定的在后面的工具链接里我会将其一块共享可自行下载在此基础上修改可以少些错误。 E列的说明性文字只是查看用的不会参与工具的计算可以删掉。这里列出6个字段类型格式除此之外的类型文字是不认的。 3、关键字筛选。这是可选填的如果你只想处理包含“规划”文字的要素和表可以在关键字里输入。如果想全部处理就可以不填任何文字。 最后点击执行即可生成结果如下以单个为例 二、实现流程 第一步从Excel表中获取字段的参数返回双层List。 // 获取字段属性结构表ListListstring list_field_attribute new ListListstring();// 建立 Excel 应用程序对象Application excelApp new Application();// 打开 Excel 文件Workbook workbook excelApp.Workbooks.Open(excel_path);// 获取工作表var worksheet workbook.Worksheets[1];// 获取总行数int row_count worksheet.UsedRange.Rows.Count;// 获取字段属性for (int i 3; i row_count; i){// 获取字段属性string mc worksheet.Cells[i, 1].Value.ToString(); // 字段名称string bm worksheet.Cells[i, 2].Value.ToString(); // 字段别名string field_type worksheet.Cells[i, 3].Value.ToString(); // 字段类型string lenth worksheet.Cells[i, 4].Value.ToString(); // 字段长度// 加入list_field_attribute.Add(new Liststring { mc, bm, field_type, lenth });}第二步从输入的文件夹中获取所有要素类和表。 首先是shp文件的情况: // 获取输入文件夹下的所有文件public static Liststring GetAllFiles(string folder_path, string key_word no match){Liststring filePaths new Liststring();// 获取当前文件夹下的所有文件string[] files Directory.GetFiles(folder_path);// 判断是否包含关键字if (key_word no match){filePaths.AddRange(files);}else{foreach (string file in files){// 检查文件名是否包含指定扩展名if (System.IO.Path.GetExtension(file).Equals(key_word, StringComparison.OrdinalIgnoreCase)){filePaths.Add(file);}}}// 获取当前文件夹下的所有子文件夹string[] subDirectories Directory.GetDirectories(folder_path);// 递归遍历子文件夹下的文件foreach (string subDirectory in subDirectories){filePaths.AddRange(GetAllFiles(subDirectory, key_word));}return filePaths;} 要获取gdb文件下要素和表首先要获取gdb文件 public static Liststring GetAllGDBFilePaths(string folderPath){Liststring gdbFilePaths new Liststring();DirectoryInfo directoryInfo new DirectoryInfo(folderPath);// 检查文件夹是否存在if (!directoryInfo.Exists){throw new DirectoryNotFoundException(指定的文件夹路径不存在);}// 查找所有GDB数据库文件.gdb文件夹DirectoryInfo[] gdbDirectories directoryInfo.GetDirectories(*.gdb, SearchOption.AllDirectories);foreach (DirectoryInfo gdbDirectory in gdbDirectories){// 获取GDB数据库的路径string gdbPath gdbDirectory.FullName.Replace(/, \);// 添加到列表中gdbFilePaths.Add(gdbPath);}return gdbFilePaths;} 再从GDB文件下获取所有要素类和表 // 获取数据库下的所有要素类的完整路径public static Liststring GetFeatureClassPath(string gdb_path){Liststring result new Liststring();// 打开GDB数据库using Geodatabase gdb new Geodatabase(new FileGeodatabaseConnectionPath(new Uri(gdb_path)));// 获取所有要素类IReadOnlyListFeatureClassDefinition featureClasses gdb.GetDefinitionsFeatureClassDefinition();foreach (FeatureClassDefinition featureClass in featureClasses){using (FeatureClass fc gdb.OpenDatasetFeatureClass(featureClass.GetName())){// 获取要素类路径string fc_path fc.GetPath().ToString().Replace(file:///, ).Replace(/, \);result.Add(fc_path);}}return result;}// 获取数据库下的所有独立表的完整路径public static Liststring GetTablePath(string gdb_path){Liststring result new Liststring();// 打开GDB数据库using Geodatabase gdb new Geodatabase(new FileGeodatabaseConnectionPath(new Uri(gdb_path)));// 获取所有独立表IReadOnlyListTableDefinition tables gdb.GetDefinitionsTableDefinition();foreach (TableDefinition tableDef in tables){using (Table table gdb.OpenDatasetTable(tableDef.GetName())){// 获取要素类路径string fc_path table.GetPath().ToString().Replace(file:///, ).Replace(/, \);result.Add(fc_path);}}return result;} 获取所有输入要素和表后即可添加字段 【obj_all】为获取的所有要素和表的路径【list_field_attribute】为获取的字段属性结构列表。 // 添加字段foreach (var ob in obj_all){string target_name ob[ob.LastIndexOf(\)..];// 如果不含关键字直接添加字段if (key_word ! ){foreach (var fa in list_field_attribute){Arcpy.AddField(ob, fa[0], fa[2], fa[1], int.Parse(fa[3]));}}else{// 如果含有关键字筛选出含关键字的部分再添加字段if (target_name.Contains(key_word)){foreach (var fa in list_field_attribute){Arcpy.AddField(ob, fa[0], fa[2], fa[1], int.Parse(fa[3]));}}}} 以上便是工具实现的核心代码。 三、工具文件分享 我把工具都集合成工具箱不再单独放单个工具可以到这里下载完整工具箱会不断更新 【ArcGIS Pro二次开发】CC工具箱https://blog.csdn.net/xcc34452366/article/details/131506345PS可以直接点击...bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。
http://www.sczhlp.com/news/240886/

相关文章:

  • 淮安经济技术开发区建设局网站会展相关网站建设
  • 网站模板之家企业网站管理源码
  • 私人找人做网站网站首页排名下降
  • 做网站需要什么特色seo优化团队
  • 广州网站制作怎么做wordpress文章内容标签做关键词
  • 微信小程序格泰网站建设濮阳做网站
  • 网站建设管理概述怎么营销推广
  • 有哪些做农产品的网站百度pc端提升排名
  • 精美大气的餐饮类企业网站wordpress登陆后段后端
  • 国外的设计网站北京网站推广优化公司
  • 如何做美食网站wordpress 域名绑定
  • 昆明网站建站推广施工企业市场调查目的与主题主要有()。
  • 如何查看网站的建设者网站模块标准版
  • 网站织梦如何让会员注册美空间网站
  • 拍卖 网站 建设怎样做企业网站备案
  • 网站升级应注意的问题wordpress修改注册表
  • 山东网站备案号wordpress分类不显示
  • 共享网站哪里建珠海公司制作网站
  • 998元网站建设优化分销系统多少钱
  • 好的网站建设网站甘南北京网站建设
  • 深圳设计网站建设公司给设计网站做图是商用吗
  • JavaScript中的闭包:概念与应用
  • 2025年山东出租履带蜘蛛车平台权威推荐榜单:租赁蜘蛛车/租赁履带蜘蛛车/蜘蛛车出租源头公司精选
  • 2025年湖北防撞缓冲车出租渠道权威推荐榜单:防撞缓冲车租赁/出租防撞车/出租防撞缓冲车源头公司精选
  • 直播|均降 40% 的 GPU 成本,大规模 Agent 部署和运维的捷径是什么?
  • 百度网站源码优化检测开发软件价格
  • 四川网站制作长沙网页设计培训班
  • 深圳网站的做网站公司动态手机网站怎么做的
  • 无锡网站制作哪家公司好网站建设销售技巧和话术
  • 网站建设的风格设置招聘网站销售怎么做