直接上结论把一张几百行的Excel销售台账变成一张能直接打印上墙的县域烟花爆竹零售点专题图QGIS就能干完而且一个人半天就能搞定。我最近刚好用QGIS处理了一批某县的烟花爆竹零售许可数据源文件就是个普通Excel表格几十个字段一百多个点位经纬度有是有但格式不统一、坐标系也完全没标注责任单位要的还是一张“按许可类型分色、能看出分布密度、能打印”的专题图。这套流程走下来从数据清洗到出图中间踩了不少坑也沉淀出几条一看就能用的经验。这篇就把整个流程拆开讲一遍从Excel数据如何进QGIS、坐标怎么对齐、专题符号怎么设置到布局怎么排版导出全部按我实操的顺序记录下来。先说清楚这篇内容适合以下几类人GIS零基础但手里有Excel点数据的基层工作人员想系统跑通“表格→地图”流程的学生以及需要用QGIS批量出专题图的日常办公人员。整个过程不涉及任何付费插件只用QGIS自带功能和少量免费扩展。1. 开工之前Excel数据质量决定后面一半的成败1.1 先搞懂为什么“加载Excel”不是打开Excel很多人习惯把Excel文件直接拖进QGIS结果发现要么打开全是乱码要么提示无法连接图层要么能连上但只是张普通属性表根本没在地图上显示点位。核心原因在于QGIS读Excel不是像Excel软件那样把整个工作簿“打开”而是通过数据库驱动把每一个工作表当成表来读取而且它默认只会处理不带坐标信息的数据表。如果你的Excel里没有能被识别为X、Y坐标的列QGIS只能显示一张表格画不了地图。所以我平时处理这类数据的第一条经验就是Excel在进QGIS之前必须先变成“能被空间化”的结构。所谓空间化就是表里至少有两个明确的数值字段一个代表经度X一个代表纬度Y并且确保它们是数值型而不是文本型。1.2 县域烟花销售点Excel字段的常见问题以我这次处理的烟花爆竹零售点台账为例原始表格里大体有这些字段零售点名称、负责人、许可证号、地址、许可类型、核定储量、经纬度、有效期等。看起来信息很全但实际操作时问题全藏在细节里经纬度列名不统一。有的是“经度”“纬度”有的是“X坐标”“Y坐标”还有的直接混在“地址备注”里写“112.3, 35.6”这种格式。经纬度格式掺杂文本。比如“112°23′14″”这种度分秒格式QGIS不认识必须提前转成十进制度格式112.3872这种。坐标值反了。字段里叫“经度”的填的却是44开头这种纬度值一旦加载后点位跑到境外甚至非洲大陆就要怀疑是不是X、Y写反了。多表头、合并单元格。基层表格经常有“第一行大标题、第二行字段说明、第三行才是字段名”的情况加载时会直接错位。所以正式导入前我建议先把原始Excel另存一份“处理版”至少做到三件事只保留一行字段名放在第一行单独拆出经度、纬度两列统一命名为Longitude和Latitude或固定的X、Y全表数值列确认格式尽量把经纬度列的单元格格式设为“数值”保留6位以上小数。如果原始坐标是度分秒可以在Excel里加两列辅助列换算公式是“度分/60秒/3600”这一步别偷懒换算错一个点地图上就飘出去几公里。1.3 底图数据怎么准备专题图最好叠加行政区边界否则一堆点在屏幕上飘着既看不出在哪个乡镇也没法说明空间分布。县域边界和乡镇边界一般可以从公开的标准地图服务或当地已有的GIS数据中获取。常见做法是拿基础地理信息数据里的行政区划面层导出成Shapefile或GeoJSON放到QGIS里直接用。这一步有三条实用经验边界数据一定确认坐标系。很多地方提供的边界是西安80或2000国家大地坐标系CGCS2000而Excel里的经纬度通常是WGS84坐标两者如果不统一要先做坐标转换后面详细说。边界数据不要全局下载。县域范围只需要本县边界和乡镇边界大范围数据能裁剪就裁剪否则QGIS打开会很卡。属性表里必须有乡镇名称字段。后面做专题图、挂接统计信息都要用它。2. 核心加载操作让Excel里的点真正落到地图上2.1 用“添加分隔文本图层”加载经纬度点QGIS加载带X、Y坐标的Excel表格最稳妥的方式不是直接拖文件而是通过菜单栏的“图层 - 添加图层 - 添加分隔文本图层”也可以直接在工具栏里找到“打开数据源管理器”切到“分隔文本”页签。我建议提前把Excel另存为CSV格式UTF-8编码。之所以不用.xlsx直连是因为CSV在编码控制和字段类型识别上更稳定尤其面对中文表头时可控性高很多。具体操作步骤是这样在数据源管理器里选择“分隔文本”文件选择刚才准备的CSV文件格式选“CSV逗号分隔”但如果原始字段里含大量逗号建议另存时分隔符改成分号并在QGIS里对应选择“自定义分隔符”关键是“几何定义”区块勾选“点坐标”X字段选经度列Y字段选纬度列坐标系先选WGS84EPSG:4326如果第一行是字段名勾选“首行包含字段名”可以点“样本数据”预览确认字段是否识别正确特别是确认X、Y列没有被识别成文本点击“添加”完成加载。这一套下来屏幕上就能看到一个个点但很多人在第3步就卡住了常见的坑是X字段下拉列表里找不到经纬度列这是因为CSV的字段名里有特殊字符空格、中文括号、百分号QGIS会自动替换成下划线不是数据丢了而是名字变了。2.2 坐标系设置为什么加载后点会跑到海里坐标加载到屏幕上了但位置明显不对甚至跑到海沟或者非洲去了绝大多数情况是坐标系选错或X、Y对调。先说一个最基础的概念WGS84是一种地理坐标系用经纬度表示位置单位是度。常见的投影坐标系比如高斯-克吕格投影用米表示位置。而我国县级工作中提到的“平方公里”“米”这类数据往往是在投影坐标系下量算的。Excel里的经纬度90%的情况是WGS84经纬度所以在导入步骤里坐标系先选EPSG:4326没毛病。但加载完成后如果发现点跟底图对不上有几种排查方法打开图层面板的属性看“图层坐标系”如果显示的是空或者未知说明导入时没正确指定右键图层 - 图层属性 - 信息里可以查看。把底图也加载进来两者坐标系如果不同可以用“导出 - 另存要素类”时指定目标坐标系QGIS会在保存时自动做坐标转换。如果X字段和Y字段选反了点位会沿一条斜线整个翻转这时候不用重新导入图层属性里不好直接换字段常规做法是重新加载一遍CSV把X、Y字段对调即可。县域的小范围数据直接用WGS84经纬度叠加底图偏差一般在几米到几十米内对销售点这种宏观分布展示完全够用。如果个别点位偏得离谱就要单独检查原始坐标是否填错或混用了其他坐标系的数据。2.3 加载底图并验证点位位置点位落图后马上叠加行政区边界快速目测点位是否落在县域范围里。这里有个很实用的验证技巧用QGIS自带的“地图标注”底图服务加载一张在线影像或街道图把点位叠加上去目测销售点是不是都落在镇区、村落附近而不是落在农田中央或水库里。在线底图加载方式是在“XYZ切片”连接里添加服务地址或者直接用快捷方式添加标准底图。这一步一是为了核对坐标准确性二是为了出图打印时给看图人一个参照环境。如果点位和底图有一致性偏移比如整体往东南移了七八十米通常是坐标系统不完全一致导致的系统偏差。县一级监管图通常不需要纠结这几十米但如果要做精确落界可以用几个已知控制点做平移校正或者确认源头数据是否有保密处理过。3. 专题制图让销售点“说话”的关键设置3.1 按许可类型做分类符号点位进地图只是第一步工作重点在专题制图。所谓专题图就是让点的颜色、大小、形状传递数据背后的信息。对烟花爆竹零售点来说最常用的分级维度有许可类型零售店、专柜、临时销售点等用不同颜色区分核定储量按储存箱数或药量分三级用点大小区分有效期状态有效、过期、即将到期用实心和空心区分。我推荐先做“分类”符号化再做“分级”符号化。分类就是对“许可类型”这样的文本字段每种值给一个独立样式。分级则是对“核定储量”这样的数值字段按区间设置渐变色或大小渐变。具体操作右键图层 - 图层属性 - 符号化顶部下拉框选择“分类”在“值”里选择“许可类型”字段点击“分类”按钮QGIS自动枚举所有类型值手动给每种类型选颜色比如“零售店”用深橙色、“专柜”用浅黄色、“临时”用灰色点击“应用”图上就会按类型分色。分完颜色后如果发现某些类型数量特别少只有一两个点颜色区分度又不明显可以考虑把这些类型合并成“其他”图例会干净很多。方法是在分类列表里手动合并值或直接改标签。3.2 点大小表达数量等级分类颜色解决“是什么类型”点大小则解决“规模有多大”。给“核定储量”字段做分级大小能让图上最大点代表的销售点一眼识别。做法是切换符号化方式选择“分级”在列里选储量字段“模式”里选“等间距”或“四分位数”符号大小设置成从3到10毫米渐变并在“图例”里保留分级范围。要注意分级数量通常3到5级就够了五个等级以上的图例密密麻麻打印出来根本看不清。如果类型和储量都想表达可以把分类和分级组合起来先按类型分色再在符号大小上按储量字段定义。具体实现是在符号化面板里点击单个分类符号的“更改符号”然后设置符号结构把“简单填充”换成“几何生成器”或“基于大小”这个操作稍复杂但效果出来的确专业适合做年度监管作战图。3.3 标注与避让点符号设置完剩下一件事就是把零售点名称标上去。默认的标注方式是把所有名称都显示出来但点位密集时标签会互相压盖图面非常乱。QGIS里有两种常用解决方式在图层标注设置里开启“设置为固定位置”选“上方右”或“下方右”再配合“图例”中的避让优先级在“标注”页签里开启“基于要素”把不重要的点标注隐藏只显示主要点位名称。对于县域一百多个点的数据我个人经验是分类图上看颜色就够了名称标注只打开年销售量较大的重点点位其余信息放到图例和统计表里。否则打印出来就是一团黑字。标注字体建议直接用思源黑体或微软雅黑这类非衬线字体字号在布局里控制在8到10磅加微弱的白色描边也就是“缓冲区”功能让压在地物线上的文字还能看清。4. 布局出图一张能打印、能汇报的专题图4.1 新建布局并配置地图框地图画完最后一步是排版出图。这一步在QGIS里叫“新建布局”本质上就是做一个打印页面把刚才的地图放进一个框里再添加图例、指北针、比例尺、标题等要素。具体操作顶部菜单“项目 - 新建打印布局”给它起个名字比如“某县烟花销售点专题图”在右侧空白区域先设置页面大小A3横向适合县域全景图A4纵向适合局部详图点击工具栏里的“添加地图”按钮在页面上拉出一个矩形框地图就能显示出来地图框内部可以继续缩放平移双击地图框后鼠标滚轮缩放拖动即可调整视野范围调整好后在右侧“项目”属性里锁定地图范围避免后续误操作破坏了视口。这里最容易忽略的是比例尺的准确性。地图框在页面上拉多大直接决定比例尺数字。QGIS的布局里可以添加比例尺条它默认自动对应地图框范围只要地图框没变形锁定比例尺数字就是准的不用手动算。4.2 图例、指北针和标题图例是专题图的灵魂。布局工具栏里点击“添加图例”图例会自动列出地图框里所有图层的符号说明。右侧属性里可以把不需要的图层取消勾选只保留“销售点”和“乡镇边界”两个。图例的标题可以改成“图层说明”图例项还可以按“只显示已见要素”来精简。这里有一个常踩的坑图例里显示的是符号化等级范围但范围字段名是一串英文字母或代码打印出来别人看不懂。解决办法是在符号化的图例标签里手动改成“许可类型零售店”“许可类型专柜”这种可读文本。指北针可以加一个简洁的样式放在图幅右上角。标题建议包含行政级别和年份比如“某某县烟花爆竹零售经营网点分布图2025年”字体稍大并加粗。底边还可以加一行小字说明数据来源、坐标系说明和制图日期。4.3 导出高清文件布局完成后导出图片或PDF是关键。点击“布局 - 导出为图片”或“导出为PDF”要求是分辦率至少300DPI嵌入元数据可以勾选。如果做汇报用我一般导出两份一份PDF用于打印一份PNG用于微信或PPT里展示。导出前一定要检查一件事打印预览模式是否正常。有时页面上要素位置没问题导出来图例跑到页面外或排版错位多半是布局页面边缘留白不够或地图框位置越界了。把页面边缘的红色边线拉进安全边距内再导出一次就好。如果是打印到A3大幅面600DPI的PNG文件可能非常大传到手机里打不开。我更推荐PDF输出矢量格式缩放不失真打印店直接能用。5. 实操中的高频问题与排查记录5.1 CSV导入后全是乱码这个问题十次有八次会遇到。CSV文件是Excel保存的默认编码可能是ANSIGBK而QGIS在Windows下默认按UTF-8读取一旦检测不对中文表头和中文内容全变成乱码。解决办法把CSV另存为UTF-8编码。Excel里重新另存为CSV时选择“CSV UTF-8逗号分隔”格式。如果已经存在乱码文件用记事本打开CSV另存为时在编码下拉框里选“UTF-8”覆盖保存也能修好。注意UTF-8分带BOM和不带BOMQGIS对带BOM的兼容性更好用记事本另存的UTF-8通常带BOM反而更容易被正确识别。5.2 点位加载后偏到境外打开CSV加载点后坐标值看起来正常但点位全跑到哈萨克斯坦或者北冰洋去了这种情况几乎可以断定是把经纬度选反了或者是字段选错了列选成了某个编号列。排查方法打开属性表随便选几个点查看它们的X、Y值或者用“识别”工具点击图上错位的点看属性里的原始经纬度值。如果经度显示成了40左右而纬度显示成了112左右马上回数据源管理器重新加载把X字段和Y字段的对应关系换一下。这一步不要犹豫换完之后再验证一次就好。5.3 点全部挤在一个点上或者缩成一个看不见的像素点全部堆在一起通常是因为X或Y字段里有个别空值、零值QGIS把这些空值当成坐标原点0,0或者某个固定值导致大量点重合在异常位置。处理办法是在导入前数据处理阶段就把空值行剔掉或者在QGIS里按属性筛选出坐标异常的要素再删掉。具体操作右键图层 - 筛选输入““Longitude” 100”这种筛选条件把明显异常的坐标值排除掉。先看一眼全图最远的几个点是不是异常值比较好。5.4 图层属性修改后符号没更新这是新手最容易困惑的地方在符号化面板里改了颜色和大小点“确定”后图面却没变化。这种情况大多是因为当前图层的渲染方式不是“单符号”而是“分类”或“分级”里的子符号改错位置。分类模式下要展开对应类别的符号改了才有效。另外如果做了“基于规则”的符号化规则顺序也会影响最终显示。QGIS从上到下匹配规则命中了第一条就不再往下走。符号设置的优先级别搞反否则后面的规则全被第一层通用规则挡住。5.5 底图不显示或显示灰块在线底图加载后出现灰色块或半天不出图一般是网络不通或切片地址失效。换一个公共底图服务地址通常会解决。另外某些在线地图源在部分网络环境下无法访问可以在设置里调整“网络”超时时间或者直接改用离线栅格底图。如果是自己准备的乡镇边界Shapefile加载后是空的打开属性表看要素数量是不是0或检查一下图层文件路径里不能有中文目录和特殊符号。路径里有中文在部分历史版本的QGIS里也会有读取问题虽然新版本已经优化但保险起见还是改成英文或拼音目录。6. 从出图到使用我的一点补充经验整套流程跑完我不建议直接把第一版图发出去。我做这种县域专题图习惯先打印一张A4黑白稿拿在手里跟原始台账逐项核对几个重点点位比如储量最大的点、位置最偏的点。屏幕上看和纸上看的视觉效果不一样很多图面问题都是在纸上才发现。另外如果后续还要持续更新数据建议把CSV文件和QGIS项目文件统一归档在一个文件夹里数据文件命名带上日期比如“xx县烟花销售点_20250615.csv”。这样下次数据更新时只需要替换CSV再重新加载一次项目文件里的图层样式和布局不会丢直接换数据源就能快速再生一张新图。还想再提一个经常被忽略的点做这类监管业务图图面上除了地图本身最好在角落加上数据说明包括点位总数、分类数量、有效期截止时间说明。看图的人不一定懂GIS但这些文字能让他快速判断这张图是否最新、是否完整。最后说句实在话QGIS这套流程对专业GIS出身的人来说非常基础但对非GIS专业的基层工作人员来说却是实打实能解决日常出图需求的高频技能。销售点监管图只是其中一个典型应用人口分布、店铺点位、隐患点位排查台账原理完全一样。掌握Excel到QGIS的空间化流程等于给自己增加了一项能直接落地的硬技能值得花半天时间认真跑一遍。