GIS数据导出Excel?属性表怎么转换?

GIS基础理论
Dr.GIS
wowwwai GIS研习社 · 工具流程与项目排障

GIS数据导出Excel?属性表怎么转换? 这是很多 GIS 初学者、数据整理人员和项目制图人员都会遇到的问题:地图图层已经做好了,属性表里有地块编号、面积、权属、分类、坐标等字段,但需要交给同事做统计、汇总或报表时,对方只想要 Excel 文件。

本文以“GIS数据导出Excel”为核心,讲清楚属性表怎么转换成 Excel,分别介绍 QGIS、ArcGIS Pro、ArcMap、GeoPandas 等常见方法,并说明字段乱码、面积不准、日期丢失、中文字段名异常等常见坑该如何排查。

GIS数据导出Excel 属性表转换流程示意图
GIS 属性表转换为 Excel 的基本流程:先检查字段,再选择导出格式,最后在 Excel 中校验结果。

引言:为什么 GIS 属性表经常需要导出 Excel

在实际 GIS 项目中,空间数据不仅要在地图上显示,还经常要被统计、审核和汇总。比如:

  • 将地块属性表导出给土地、规划或测绘人员核对。
  • 把道路、管线、设施点位数据导出为 Excel 做台账。
  • 将空间分析结果导出给非 GIS 同事查看。
  • 把 QGIS 或 ArcGIS Pro 中的字段结果交给其他系统导入。

这类需求的本质是:把 GIS 图层中的属性表转换为表格数据。需要注意的是,属性表导出 Excel 并不等于导出地图本身。如果你只需要字段内容,导出表格即可;如果还需要几何坐标,则要额外生成 X、Y 坐标或 WKT 几何字段。

背景:GIS数据导出Excel常见的几种场景

不同软件中,“GIS数据导出Excel”的入口名称不完全一样。有的软件直接支持 XLSX,有的软件更推荐先导出 CSV,再用 Excel 打开。常见场景如下:

场景 推荐方法 适合对象
QGIS 图层属性表导出 另存为 XLSX 或 CSV QGIS 用户、GIS 学生
ArcGIS Pro 属性表导出 Table To Excel 工具 ArcGIS Pro 用户
ArcMap 属性表转换 Table To Excel 或导出 DBF/CSV 传统 ArcGIS 用户
批量导出多个图层属性表 Python、ArcPy、GeoPandas GIS 工程师、数据分析人员
需要保留坐标信息 先计算 X/Y 或 WKT 字段,再导出 点位台账、外业核查数据

如果只是一次性导出,使用软件界面即可。如果要每天或每周重复导出,建议用 Python 脚本自动化处理,避免手工复制粘贴造成字段错位。

原理:属性表怎么转换成 Excel

GIS 图层通常由两部分组成:几何信息和属性信息。几何信息描述点、线、面的空间形状,属性信息则是字段表,例如编号、名称、类型、面积、长度、备注等。

所谓“属性表转换 Excel”,主要是把属性信息写入 XLSX、CSV 或其他表格格式。这里有几个关键点:

  • 字段名:Excel 表头来自 GIS 属性表字段名。
  • 字段值:每一行对应一个要素的属性记录。
  • 字段类型:文本、整数、小数、日期等类型会影响 Excel 中的显示。
  • 编码:中文字段或中文内容如果编码不匹配,可能出现乱码。
  • 几何:默认导出属性表时,几何形状通常不会直接进入 Excel,除非你额外生成坐标或 WKT 字段。

因此,正确的流程不是直接“复制属性表”,而是先检查字段、确认坐标或面积是否需要、再选择合适的导出格式。

步骤:QGIS中将GIS数据导出Excel

如果你使用 QGIS,属性表导出 Excel 是最直接的操作之一。适合 Shapefile、GeoPackage、GeoJSON、PostGIS 图层等常见数据源。

步骤一:打开图层属性表并检查字段

  1. 在 QGIS 图层面板中右键目标图层。
  2. 选择“打开属性表”。
  3. 检查字段是否完整,例如编号、名称、面积、类型、备注等。
  4. 确认是否存在空值、乱码、字段名过长或字段类型异常。

如果你要导出面积或长度,不建议直接相信原始字段。最好先确认数据坐标系是否适合计算面积,例如使用投影坐标系而不是经纬度坐标系。

步骤二:如需坐标,先生成 X/Y 字段

如果是点图层,并且 Excel 中需要坐标,可以在字段计算器中新增字段:

x($geometry)
y($geometry)

对于面图层,如果需要中心点坐标,可使用:

x(centroid($geometry))
y(centroid($geometry))

这样导出的 Excel 就不仅有属性信息,还能保留可用于定位的坐标字段。

步骤三:另存为 Excel 或 CSV

  1. 右键图层,选择“导出”。
  2. 选择“另存为”。
  3. 格式选择“MS Office Open XML spreadsheet [XLSX]”或“逗号分隔值 [CSV]”。
  4. 文件名设置为合适路径,例如 地块属性表.xlsx
  5. 坐标参考系保持原图层坐标系即可,除非你需要转换坐标。
  6. 字段列表中只勾选需要导出的字段。
  7. 点击“确定”。

如果你的表格字段很多,建议只导出需要交付的字段。这样 Excel 更清晰,也能减少后续误用字段的风险。

步骤:ArcGIS Pro中属性表转换Excel

在 ArcGIS Pro 中,推荐使用地理处理工具 Table To Excel。这个方法比复制粘贴更可靠,适合正式项目交付。

步骤一:打开 Table To Excel 工具

  1. 打开 ArcGIS Pro 项目。
  2. 在“分析”选项卡中点击“工具”。
  3. 搜索 Table To Excel
  4. 打开该工具。

步骤二:设置输入表和输出文件

  1. 输入表选择目标图层的属性表。
  2. 输出 Excel 文件设置为 .xls.xlsx 文件路径。
  3. 如需使用字段别名,可选择使用字段别名作为列名。
  4. 运行工具。

如果图层来自企业地理数据库或在线服务,建议先确认你有读取全部记录的权限。有些服务图层可能存在最大返回记录数限制,导致导出的 Excel 记录不完整。

步骤三:检查导出结果

导出完成后,用 Excel 打开文件,重点检查:

  • 总行数是否与 GIS 属性表一致。
  • 中文字段名和中文内容是否正常。
  • 日期字段是否被 Excel 自动改格式。
  • 编号字段是否被 Excel 自动转成科学计数法。
  • 面积、长度字段的小数位是否符合要求。

对于项目交付表,建议在 Excel 中冻结首行,并另存为正式文件,避免直接修改原始导出结果。

步骤:使用GeoPandas批量将GIS属性表导出Excel

如果你需要批量转换多个 GIS 文件,手工导出会很慢。此时可以使用 Python GIS 常用库 GeoPandas。它适合处理 Shapefile、GeoPackage、GeoJSON 等矢量数据。

import geopandas as gpd

input_path = "data/land_parcels.shp"
output_path = "output/land_parcels_attributes.xlsx"

gdf = gpd.read_file(input_path)

# 如果不需要几何字段,只导出属性表
df = gdf.drop(columns="geometry")

df.to_excel(output_path, index=False)

如果需要导出点坐标,可以这样写:

import geopandas as gpd

gdf = gpd.read_file("data/points.gpkg")

# 确保是点图层
gdf["x"] = gdf.geometry.x
gdf["y"] = gdf.geometry.y

df = gdf.drop(columns="geometry")
df.to_excel("output/points_with_xy.xlsx", index=False)

如果是面图层,并且需要中心点坐标,可以先计算代表点:

import geopandas as gpd

gdf = gpd.read_file("data/polygons.gpkg")

point = gdf.geometry.representative_point()
gdf["x"] = point.x
gdf["y"] = point.y

df = gdf.drop(columns="geometry")
df.to_excel("output/polygons_attributes.xlsx", index=False)

注意:GeoPandas 写入 Excel 通常需要安装 openpyxl。如果报错,可以先安装:

pip install openpyxl

常见坑:GIS属性表导出Excel后容易出错的地方

坑一:中文乱码

如果从 GIS 数据导出 CSV 后用 Excel 打开出现乱码,通常是编码问题。建议优先导出 XLSX;如果必须使用 CSV,尽量选择 UTF-8 编码,并在 Excel 中通过“数据”导入文本,而不是直接双击打开。

坑二:编号字段变成科学计数法

例如地块编号、身份证号、设施编码、管线编号等长数字字段,Excel 可能自动转换为科学计数法。解决方法是把这类字段在 GIS 中设置为文本字段,或在 Excel 中提前设置列格式为文本。

坑三:面积字段看起来不准

面积不准通常不是 Excel 的问题,而是 GIS 计算面积时使用了不合适的坐标系。经纬度坐标系单位是度,不适合直接计算平方米。应先投影到合适的平面坐标系,再计算面积字段,然后导出 Excel。

坑四:导出后少了几何信息

Excel 本身不是空间数据格式,不能直接保存点线面几何。若需要几何信息,应在导出前生成 X/Y 坐标、WKT 字符串,或同时保留原始 Shapefile、GeoPackage、GeoJSON 文件。

坑五:字段名被截断

Shapefile 的字段名长度有限,常见情况是中文字段名或长字段名被截断。若你需要完整字段名,建议使用 GeoPackage 或 File Geodatabase 作为中间格式,再导出 Excel。

坑六:筛选状态影响导出

部分软件在导出时可能只导出已选中记录,或导出当前筛选结果。导出前请确认是否存在选择集、定义查询、过滤条件,否则 Excel 行数可能少于原始属性表。

方法比较:XLSX、CSV、DBF和复制粘贴怎么选

方法 优点 缺点 推荐程度
直接导出 XLSX 兼容 Excel,中文友好,格式稳定 超大数据量时文件可能较大 推荐
导出 CSV 通用、轻量、适合系统导入 容易出现编码、分隔符和日期格式问题 适合数据交换
导出 DBF 传统 GIS 软件支持较多 字段名、编码、字段类型限制明显 不优先推荐
属性表复制粘贴 临时操作快 容易漏行、错列,不适合正式交付 仅用于临时查看
Python 批量导出 可重复、可自动化、适合多文件 需要一定脚本基础 适合批处理

如果是正式项目交付,优先选择 XLSX。如果是系统之间的数据交换,CSV 更通用。如果是批量任务,建议使用 Python、ArcPy 或 GeoPandas 自动生成 Excel。

检查清单:导出Excel前后必须核对什么

为了避免返工,建议每次 GIS数据导出Excel 前后都按下面清单检查。

导出前检查

  • 确认目标图层是否正确。
  • 确认是否只导出选中要素。
  • 确认是否存在定义查询或过滤条件。
  • 确认字段名、字段类型和字段顺序是否合理。
  • 确认面积、长度、坐标字段是否已正确计算。
  • 确认中文内容是否正常显示。
  • 确认是否需要保留 X/Y 坐标或 WKT 几何。

导出后检查

  • Excel 行数是否与 GIS 属性表记录数一致。
  • 字段列数是否完整。
  • 编号字段是否被自动改格式。
  • 日期字段是否被 Excel 自动转换。
  • 小数位是否满足统计或交付要求。
  • 中文字段和中文值是否乱码。
  • 是否有空行、重复行或异常空值。

最简单的验证方式是:在 GIS 属性表中查看总记录数,再在 Excel 中查看数据行数。两者一致,才能继续做统计和交付。

FAQ:GIS数据导出Excel常见问题

GIS属性表可以直接转换成Excel吗?

可以。QGIS 可以通过“另存为”导出 XLSX 或 CSV,ArcGIS Pro 可以使用 Table To Excel 工具。需要注意的是,默认导出的主要是属性字段,不一定包含几何坐标。

属性表怎么转换才不会乱码?

优先导出 XLSX。如果使用 CSV,建议选择 UTF-8 编码,并在 Excel 中通过“数据导入”方式打开。不要总是直接双击 CSV,因为 Excel 可能按系统默认编码解析,导致中文乱码。

为什么GIS数据导出Excel后没有坐标?

因为 Excel 是普通表格格式,不会自动保存 GIS 几何。点图层需要先生成 X、Y 字段;线或面图层可以根据需求生成中心点坐标、代表点坐标或 WKT 字段。

为什么导出的Excel行数比属性表少?

常见原因是只导出了选中要素、图层存在筛选条件、服务图层有最大返回记录限制,或者导出过程中出错。请先清除选择、检查定义查询,再重新导出。

QGIS导出Excel应该选XLSX还是CSV?

如果是给人查看和编辑,建议选 XLSX;如果是给系统导入或进行数据交换,CSV 更通用。但 CSV 要特别注意编码、分隔符和日期格式。

Excel能不能保存Shapefile里的点线面?

不能完整保存。Excel 可以保存属性字段、坐标字段或 WKT 文本,但不能像 Shapefile、GeoPackage、GeoJSON 那样真正保存空间几何和坐标参考系。

结论:属性表转换Excel的正确思路

GIS数据导出Excel并不复杂,但要做得可靠,关键是先理解属性表、字段类型、编码和几何信息之间的关系。不要只依赖复制粘贴,正式工作中应使用 QGIS 另存为、ArcGIS Pro 的 Table To Excel,或 Python 脚本批量导出。

如果只是交付普通属性台账,导出 XLSX 最稳妥;如果需要系统交换,CSV 更方便;如果需要坐标或几何信息,必须在导出前生成 X/Y、中心点或 WKT 字段。按“字段检查、格式选择、导出、Excel校验”的流程操作,GIS 属性表转换 Excel 就能减少乱码、漏行、面积错误和字段格式异常等问题。