导入导出
Excel/CSV 一键导入到模块,导出筛选后的数据落地存档,导入全程留痕可追溯。
导入入口
每个模块都有自己的导入入口,不是全局一个。先点左侧菜单进到要导入的模块(例如村民花名册),然后看右上角工具栏。
- 进入模块左侧菜单点目标模块名,等列表加载出来。
- 点"导入 Excel"右上角工具栏有一个绿色的
导入 Excel按钮,点开后弹出导入向导。 - 选文件把 Excel/CSV 文件拖进虚线框,或点
点击选择从本机挑一个。系统没有单独的"下载模板"功能,直接拿手头现成的花名册/台账文件传上来就行,下一步会让你把 Excel 列和模块字段一一对应上。
Excel 第一行的列名如果和模块里的字段名完全一样(比如都叫"姓名"),系统会自动帮你配好对应关系;名字对不上的列,下一步手动选一下就行,不需要提前套用任何模板格式。
准备 Excel/CSV 文件(列名约定、必填列)
文件格式支持 .xlsx、.xls、.csv 三种,单个文件最多 20000 行,超过会被系统拒绝,请拆成几个文件分批导。
| 规则 | 说明 |
|---|---|
| 第一行是表头 | 建议是中文字段名,和模块里看到的一样,例如姓名、身份证号、户号,系统才能自动对应。 |
| 必填列不能空 | 模块字段里勾了"必填"的列,单元格留空会被算成错误行。 |
| 日期统一格式 | 用 2025-03-15 或 2025/03/15,不要用"三月十五号"这种文字。 |
| 下拉/多选用文字 | 直接写选项文字(例如男),多选用,或、分隔。 |
| 布尔列 | 只认是/否或英文 true/false(大小写不限);不要填 1/0——系统不认识 1/0,会把它们当成"否"处理,容易悄悄导错数据。 |
| 身份证/电话 | 整列在 Excel 里先设成"文本"格式,否则前面的 0 和 18 位身份证会被吞掉。 |
上传文件: 自动识别表头
上传完成后,系统会在文件的前 5 行里自动找"最像表头的那一行"(哪一行非空格子最多就用哪一行),不是死板地只认第一行。这是专门照顾村里常见的表格习惯——很多台账第一行是"××村总人口信息表"这种大标题,系统会自动跳过它,找下面真正的表头行。
如果识别出来的列数和你 Excel 里看到的对不上,一般是两种情况:Excel 里有合并单元格(合并区域只有左上角一格有值,系统会自动把值填满整个合并区域,但格式特殊的合并有时识别不准);或者表头出现在第 6 行及以后(超出了自动识别扫描的前 5 行范围)——这种情况需要手动把表头行挪到前 5 行以内再重新上传。
字段映射(把 Excel 列对应到模块字段)
上传完成后,同一屏往下就是映射表格:左边一列是 Excel 里的列名(附带前几条示例数据),右边一列是下拉框,让你选对应到模块的哪个字段。
- 同名自动匹配列名和字段名一模一样的,系统会自动配好,不用手动选。
- 手动配差异列名字对不上的(比如 Excel 写
身份证但字段叫身份证号),点右边下拉框手动选。 - 忽略多余列不需要的 Excel 列,把右边下拉框清空,留空会显示占位字"不导入",这一列就会被跳过。
模块里勾了"必填"的字段,如果没有任何 Excel 列映射到它,点预览变更(或开始导入)时会弹出提示"必填字段未对应到列:XX、XX",没法继续。要么回去补一列映射上,要么去模块结构里把该字段的"必填"取消。
选择导入策略
字段映射的同一屏往下,有一块"导入策略"单选,一共 4 种,按场景选。选仅新增以外的策略,还要多选一个"按哪个字段判重":
| 策略 | 新增 | 更新已有 | 用在哪 |
|---|---|---|---|
| 仅新增(首次导入) | 是 | 否 | 不去重,全部当新行插入;撞唯一约束的行直接报错。选这个策略没有预览步骤,点开始导入就直接写库 |
| 跳过重复(补录) | 是 | 否 | 按匹配字段查,已存在的不动,只插入新的 |
| 增量更新(同步刷新) · 推荐 | 是 | 局部覆盖 | 已存在的记录只更新 Excel 提供的字段,没提供的字段保留旧值 |
| 完全替换(慎用) | 是 | 局部覆盖 | 已存在的记录同样只更新 Excel 提供的字段——目前和"增量更新"实际效果一样,Excel 没填的字段不会被清空 |
虽然名字叫"完全替换",但当前版本里它和"增量更新"效果一样,只覆盖 Excel 表里实际提供了值的字段,Excel 里没填的列不会动已有数据。想清空某个字段的旧值,还是得手动进那条记录编辑。
选择匹配字段
除了"仅新增",其他三种策略都要在"按哪个字段判重"下拉框里选一个匹配字段,用来判断"这一行是新的还是旧的"。
- 选唯一字段下拉框里只列出模块里勾了"不允许重复"(即"唯一")的字段,常用的是
身份证号、户号、工号这种单字段;如果模块里一个这样的字段都没有,旁边会提示"该模块没有「不允许重复」的字段",需要先去模块管理开启。 - 不要选可能重的不要拿
姓名当匹配字段——重名一多就会乱串数据。 - Excel 里这一列不能空匹配字段对应的 Excel 列必须每行都有值,空值行会被列为错误。
查看变更预览
选完策略(和匹配字段),点预览变更,系统会在内存里跑一遍但不真改数据,给你一张变更清单:
- 顶部四个数字大字:
新增/更新/跳过/错误,点哪个数字就切到对应的那张明细表,相当于四个 tab。 - "新增"表:每行左边有勾选框,中间是这一行的主标识,右边是数据预览。
- "更新"表:每行左边同样有勾选框,点行首箭头展开能看到字段级 diff——哪个字段从什么改成什么,老值红色划掉、新值绿色显示。这一步能挡掉大半的乌龙改动。
- "跳过"表和"错误"表是只读的,没有勾选框(跳过的行本来就不会写库,错误的行没法写库)。
排除单行(列表里取消勾选)
预览清单里发现某几行不对劲(比如户号填错了、明显是测试数据),不用回去改 Excel,直接在那一行左边把勾去掉,导入时就跳过这几行。剩下的继续走。
"新增"表和"更新"表各自顶部都有一个全选(N)复选框,点一下能一键勾选/取消勾选当前这张表里的所有行;新增和更新本来就分在两个 tab 里,切到哪个 tab 相当于已经"只看新增"或"只看更新"了,不需要额外的筛选按钮。
执行导入 + 结果统计
预览没问题,点最下面绿色的确认导入(N 条),按钮上的数字是"新增+更新减去你取消勾选的"那么多条。系统跑完直接翻到结果页:
| 项 | 含义 |
|---|---|
| 新增 | 实际入库的新行数 |
| 更新 | 实际改动的旧行数 |
| 跳过 | 预览里你取消勾选的 + 没变化的 |
| 失败(如果有) | 标题下方会提示"N 行有问题未导入",下面附一张表列出具体是哪些 Excel 行号、什么原因 |
一次导入了 10 条以上,模块当前又是按"新→旧"排序时,管理员会在结果页看到一条提示,可以一键切换成"按 Excel 顺序展示",不用再自己去模块设置里找。
导入错误处理
有失败行的话,预览的"错误"表(或最终结果页的错误表)里会列出:行号(Excel 里的行号,从第 2 行算起)、错误原因(原因里已经带了具体字段名,比如"「身份证号」身份证号格式不对")。常见错误如下:
| 错误提示 | 原因 | 怎么改 |
|---|---|---|
| 「XX」为必填项 | 必填列这一格没填 | 回 Excel 补上 |
| 「XX」身份证号格式不对 | 不是 18 位,或前 17 位含非数字字符,或末位不是数字/X(系统不校验校验位,抄录的老身份证号也能过) | 核对位数和字符 |
| 「XX」日期格式应为 YYYY-MM-DD | 填了"三月"这种非标准文字 | 改成 2025-03-15 |
| 「XX」的值不在可选项中 | 填了模块字段里没设置的选项 | 要么改 Excel,要么去模块管理加这个选项 |
| 「XX」已存在相同的值,不能重复 | 匹配字段(或其他勾了"唯一"的字段)在 Excel 里同一个值出现两次,或者和库里已有记录冲突 | 合并或删掉重复行 |
如果一次性错超过 200 条,系统只列前 200 条,剩下的会标注一行提示错误过多、已停止继续检查。建议先按这 200 条的错误模式回去整体清洗 Excel,再重新导一次。
导出: 选择导出格式 / 字段范围
右上角工具栏导入按钮旁边就是导出。点开后逐项选:
- 导出范围三选一:
勾选的记录(默认 20 条上限, 列表先勾过才能选) /当前筛选结果(N 条) /全部数据(共 X 条)。三个选项后面都会显示真实数量, 不会再"以为只能导 20 条"。 - 分批保存不分批 / 每 1000 条 / 每 5000 条 / 每 10000 条 任选。选了分批, 比如全村 6800 条选"每 5000 条", 会生成
名称-1.xlsx(5000 条) +名称-2.xlsx(1800 条)两个文件, 方便上级单位分批接收。 - 导出字段默认全选; 点字段名前的复选框勾掉不要的列。附件 / 图片字段导出的是文件名, 不带实际文件本身。
- 保存位置桌面版点导出后弹原生「另存为」对话框, 自己选保存到哪个文件夹(D 盘、U 盘、桌面都行); 浏览器版会自动下到默认下载文件夹。
表格默认每页 20 行, 表头复选框只能勾当前页可见的行。想导整本花名册, 不要走"勾选的记录", 改选「当前筛选结果」或「全部数据」即可一次全导, 不受 20 行限制。
如果你之前保存过视图, 切到那个视图再点导出, 导出的就是视图筛选后的结果, 比临时调筛选条件稳。
导入与操作日志(留痕)
每一次导入都会落进操作日志,admin 在左侧菜单操作日志里能看到:
- 操作人账号、时间
- 操作类型:
导入 - 模块名、这次新增/更新/跳过/错误各多少条、改动最多的字段排行
这意味着每一次导入都查得到是谁、什么时候、改了多少条,遇到上级督查或者出问题倒查,这张日志能帮上忙。需要注意两点:日志目前不记录操作设备的 IP;导出是纯本地生成文件,不写操作日志,也没有"按批次号一键回滚"这类功能——导错了需要回去手动订正或删除对应记录。
L3 vs L1/L2 对比
市面上 Excel 类工具的导入大致分三档。本系统走的是 L3(最完整)那一档,不是为了炫技,是为了别让村干部踩坑:
| 能力 | L1 普通 Excel 工具 | L2 常见管理软件 | L3 本系统 |
|---|---|---|---|
| 列名映射 | 必须列名一模一样 | 支持手动映射 | 同名自动 + 手动映射 |
| 策略 | 只有新增 | 新增 / 覆盖 | 4 种(仅新增/跳过重复/增量更新/完全替换) |
| 匹配判重 | 无,全部当新行 | 固定按主键 | 任选唯一字段 |
| 预览 | 无 | 显示总数 | 字段级 diff + 单行勾选 |
| 错误隔离 | 整体失败 | 给一个错误总数 | 单行报错不拖累整批,200 条错误清单定位到行号 |
| 留痕 | 无 | 简单日志 | 操作人/时间/新增更新跳过错误计数写进操作日志 |
简单说:L1 让你"导进去",L2 让你"导对",L3 让你"就算有几行数据填错了,也不会拖累其余几千条一起失败,还能一眼看到哪行错在哪"。村里的台账一旦乱一次就要折腾一礼拜,所以多这几步预览和错误隔离,是值的。