arcpy基于excel中表格字段批量给矢量要素添加对应字段

将Excel表格中的字段批量添加到矢量要素并将对应内容填写到要素属性表是可以使用Arcpy实现的。以下是一个简单代码,假设有一个包含字段和数据的Excel表格以及要进行批量添加的矢量要素图层:
import arcpy
import xlrd

# 设置输入数据路径
excel_file = r"C:\data\attributes.xlsx"  # 包含字段和数据的Excel表格
feature_class = r"C:\data\features.shp"  # 要进行批量添加的矢量要素图层

# 打开Excel表格
workbook = xlrd.open_workbook(excel_file)
worksheet = workbook.sheet_by_index(0)

# 获取Excel表格的字段名和值
field_names = [str(cell.value) for cell in worksheet.row(0)]
field_values = [[str(cell.value) for cell in worksheet.row(row_id)] for row_id in range(1, worksheet.nrows)]

# 添加字段到要素类
for field_name in field_names:
    arcpy.AddField_management(feature_class, field_name, "TEXT")

# 打开要素类的编辑会话
with arcpy.da.Editor(arcpy.env.workspace) as edit_session:
    # 更新要素类的属性表
    with arcpy.da.UpdateCursor(feature_class, field_names) as cursor:
        for row_id, row in enumerate(cursor):
            if row_id < len(field_values):
                row = field_values[row_id]
                cursor.updateRow(row)
 

在上述代码中,首先设置了输入数据的路径,即包含字段和数据的Excel表格和要进行批量添加的矢量要素图层。然后,使用`xlrd`模块打开Excel表格,并获取字段名和值。接下来,通过`AddField_management`函数将字段逐个添加到要素类中。最后,使用`UpdateCursor`迭代要素类的每一行,并根据Excel表格中对应的数据更新要素类的属性表。

请注意,代码中的路径和文件名应根据你自己的数据进行相应修改。此外,字段类型设定为了"TEXT",如果你需要添加其他类型的字段(如整型、浮点型等),可以相应修改`AddField_management`函数的第三个参数。另外,请确保Excel表格的字段名与要素类的字段名完全匹配。

猜你喜欢

转载自blog.csdn.net/weixin_58851039/article/details/131240263