Arcpy を使用して、Excel テーブルのフィールドをベクター要素にバッチで追加し、対応するコンテンツを要素の属性テーブルに入力することができます。以下は、フィールドとデータを含む Excel テーブルとベクター フィーチャ レイヤーがバッチで追加されることを想定した簡単なコード
です
。
# 入力データ パスを設定します
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)] )] range(1, worksheet.nrows) の row_id 用]
# field_names の field_name のフィーチャクラスにフィールドを追加します:
arcpy.AddField_management(feature_class, field_name, "TEXT")
# arcpy.da.Editor(arcpy.env.workspace) を edit_session として使用してフィーチャクラスの編集セッションを開きます
: # arcpy.da.UpdateCursor(feature_class, field_names) をカーソルとして使用してフィーチャクラス
の属性テーブルを更新します: for row_id 、列挙内の行 (カーソル): row_id < len(field_values) の場合: row = field_values[row_id] cursor.updateRow(row)
上記のコードでは、入力データのパス、つまりフィールドとデータを含む Excel テーブルと、バッチで追加されるベクター フィーチャ レイヤーが最初に設定されます。次に、`xlrd` モジュールを使用して Excel シートを開き、フィールド名と値を取得します。次に、「AddField_management」関数を使用してフィールドが 1 つずつフィーチャクラスに追加されます。最後に、「UpdateCursor」を使用してフィーチャクラスの各行を反復処理し、Excel シート内の対応するデータに従ってフィーチャクラスの属性テーブルを更新します。
コード内のパスとファイル名は、独自のデータに応じて変更する必要があることに注意してください。さらに、フィールド タイプは "TEXT" に設定されています。他のタイプのフィールド (整数、浮動小数点など) を追加する必要がある場合は、それに応じて `AddField_management` 関数の 3 番目のパラメータを変更できます。また、Excel シートのフィールド名がフィーチャクラスのフィールド名と正確に一致していることを確認してください。