之前发了两片通过代码“一键”转换国土“三调”数据的文章,
《【办公自动化】国土“三调”用地分类“一键”转南京分类》
《【办公自动化】国土“三调”用地分类“一键”转国标分类》
有同学提出作为规划工作者不会python怎么办?答曰可以自学呀!
其实电脑装有Excel和Word就能“一键”搞定!
1、Excel“一键”开始
- 打开我们提供的用地转换对照表Excel(后文提供)
- 快捷键 Alt+F11 打开了Excel的VB编辑器
- 点文件 > 导入文件…
- 对话框中选到 VB转代码.bas 文件 (后文提供),打开
- 按F5 或者点绿色箭头运行,出现下面宏对话框,有宏名称就加载正确
- 点运行,会自动弹出一个Word,里面是生成的Python代码,已全选,复制去GIS粘贴就行,简单吧。
注意:这里代码是通过判断表中A列,返回C+D列中数据生成的,其他列无关,需要的同学自行修改Excel。
2、GIS部分操作再啰嗦一下
- 打开GIS,打开属性表,添加字段layer,类型文本;
- 右击字段,打开字段计算器…,选Python,勾选显示代码块,在其中粘贴脚本代码,在Layer= 下面填入 plan_name(!DLBM!) 调用函数;
- 点保存就生成了cal文件,以后可以加载使用一键转换;
- 点确定就生成了转换后的Layer数据。
若需要CAD文件,自行导出CAD,CAD中就形成了国土空间规划的用地图层。
3、VB版代码
之前文章中提供的是python版本生成代码,用python生成python格式上更方便写,但在Excel中运行VBA,不需要读取文件,不需要安装python环境,不需要安装库,就是生成代码比python略微复杂一些,供交流学习!
Public Sub make_code()
Dim wdapp As Object
'生成函数定义,筛选处理含K类型。通过chr(10)换行,注意python退让格式
cord = "def pl