【问题标题】:Extract all domains from gdb into xls sheet将 gdb 中的所有域提取到 xls 表中
【发布时间】:2022-08-20 18:34:13
【问题描述】:

我有一个来自 esri (gdb) 的文件地理数据库,我想将所有具有所有值的域提取或导出到 xls 表中。我不知道这是否可能。我的python知识很愚蠢。如果有人可以帮助我,我会非常高兴。

谢谢你的回答,我试过了,但它给了我一个错误。

ValueError Tracebck(最近一次调用最后一次)在 [2] 中:第 13 行:worksheet.cell(target_row + idx, target_column).value = domain

文件 C:\\Program Files\\ArcGIS\\Pro\\bin\\Python\\envs\\arcgispro-py3\\Lib\\site-packages\\openpyxl\\cell\\cell.py,值:第 215 行:self._bind_value(value)

文件 C:\\Program Files\\ArcGIS\\Pro\\bin\\Python\\envs\\arcgispro-py3\\Lib\\site-packages\\openpyxl\\cell\\cell.py,在 _bind_value 中:第 184 行:raise ValueError(\"Cannot convert {0!r} to Excel\".format(value))

ValueError:无法将 <Workspace Domain object object at 0x000002782AC64C90> 转换为 Excel

标签: python dns esri


【解决方案1】:

这使用弧度库以从您的文件中读取域和打开pyxl写表。

您将需要安装这两个 Python 库。 (我假设您的意思是 xlsx 而不是旧的 xls 顺便说一句):

import arcpy
import openpyxl

domains = arcpy.da.ListDomains("YourFile.gdb")
dest_filename = 'output.xlsx'
target_row = 1
target_column = 1
workbook = openpyxl.Workbook()
worksheet = workbook.active
for idx, domain in enumerate(domains):
    worksheet.cell(target_row + idx, target_column).value = domain.name
workbook.save(filename=dest_filename)

【讨论】:

  • 我试过了,但我得到了一个错误,你可以在页面下方看到。发表评论太长了……谢谢
【解决方案2】:

请参阅对我原始答案的编辑...

worksheet.cell(target_row + idx, target_column).value = domain 开头的行最后需要.name

【讨论】:

  • excel已经写好了,但它只包含一列,所有域名都写在每一行中。但不包括这些值。
猜你喜欢
  • 2015-05-24
  • 1970-01-01
  • 2013-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多