arcgis10.2.2建库脚本
arcgis版本10.2.2python2.7
读取EXCEL表中的图层名和字段名建库。建库是GDB数据库。
最初代码来源于QQ数据交流群中的 (-
# -*- coding:cp936 -*-
import xlrd
import arcpy
import os
def main():
# 输入表格
xl0 = arcpy.GetParameterAsText(0)
# 输出数据库
out_folder = arcpy.GetParameterAsText(1)
out_name = arcpy.GetParameterAsText(2)
# 打开表
table0 = xlrd.open_workbook(xl0)
features = table0.sheets()# 图层列表
arcpy.CreateFileGDB_management(out_folder, out_name)
for i in range(1, features.nrows):
(xh0, ysbm0, jhtz0, ysmc0, ystj0, bz0) = features.row_values(i)[:6]# 序号-图层名称(要素别名)-几何特征-属性表名(要素名称)-约束条件-备注
ysmc0 = ysmc0.encode('unicode-escape').decode('string_escape')
jhtz0 = jhtz0.encode('unicode-escape').decode('string_escape')
sjkdz0 = os.path.join(out_folder, out_name + ".gdb")# 数据库地址
ysdz0 = os.path.join(sjkdz0, ysmc0)# 要素地址
arcpy.CreateFeatureclass_management(sjkdz0, ysmc0, jhtz0)# 创建要素
arcpy.AlterAliasName(ysdz0, ysbm0)
arcpy.AddMessage(u"要素 " + ysbm0 + u" 创建成功")
fields = table0.sheet_by_name(ysmc0)# 字段列表
for j in range(1, fields.nrows):# 获取字段列表工作表每行的字段属性
(xh, zdmc, zddm, zdlx, zdcd, xsws, yz, ystj) = fields.row_values(j)[
:8]# 序号-字段名称(字段别名)-字段代码-字段类型-字段长度-小数位数-值域-约束条件
zddm = zddm.encode('unicode-escape').decode('string_escape')
zdlx = zdlx.encode('unicode-escape').decode('string_escape')
zdcd = str(int(zdcd))
ystj = ystj.encode('unicode-escape').decode('string_escape')
if ystj == "M":
if zdlx == "TEXT":
arcpy.AddField_management(ysdz0, zddm, zdlx, "", "", zdcd, zdmc, "NON_NULLABLE", "", "")
else:
arcpy.AddField_management(ysdz0, zddm, zdlx, "", "", "", zdmc, "NON_NULLABLE", "", "")
else:
if zdlx == "TEXT":
arcpy.AddField_management(ysdz0, zddm, zdlx, "", "", zdcd, zdmc, "NULLABLE", "", "")
else:
arcpy.AddField_management(ysdz0, zddm, zdlx, "", "", "", zdmc, "NULLABLE", "", "")
arcpy.AddMessage(u"字段 " + zddm + u" 添加完成")
if __name__ == '__main__':
main()
下载看看 川黔 发表于 2021-9-22 19:25
谢谢分享 这个还得配套各excle的模板吧
模板在一楼,先发的代码,和模板,后来补发的arcgis工具 应该发到地信网论坛受众会多一些~ 补充一下生成的加载到arcgis中直接使用的工具 正好需要。。。。。 谢谢分享 这个还得配套各excle的模板吧 dingyixia,正好需要 感谢大神分享 谢谢分享,每次建库都好废时间{:1_918:}
页:
[1]
2