Neatbo.

CSV 按主键对账

按唯一主键比较两份较小的 CSV,查看新增、删除与变化单元格。

浏览器本地处理输入文件或文本输出JSON / CSV两份 UTF-8 CSV,每份最多 1 MiB
  1. 1添加输入
  2. 2调整设置
  3. 3获取结果

工具输入和文件在当前浏览器处理,不会上传。

输入内容

切换工具时在当前标签页临时保留输入。刷新或关闭后清除,较大的结果可能需要重新生成。

⌘ / Ctrl + Enter 运行

请粘贴或导入两份 CSV,然后选择主键。

正在准备处理工具…

开始之前

粘贴或导入旧版和新版 UTF-8 CSV,选择两侧共有的唯一主键,再按列查看新增、删除与修改记录。行顺序变化不影响比较。

如何使用

  1. 粘贴或导入带表头的旧版和新版 UTF-8 CSV,核对行列数。
  2. 选择两侧共有的主键列;先修正空键或重复键。
  3. 查看新增、删除、修改记录数及变化单元格、列结构差异,再下载 JSON 或 CSV 报告。

支持范围与限制

每侧最多 1 MiB UTF-8 CSV 文本,解析单元格最多 20 万。两侧都须有表头及同名主键列,键值在本侧须非空且唯一。

主键和单元格按原字符串比较:前导零、空格及大小写都有区别。只逐格比较两侧同名的非主键列;新增/删除列名另行列出。

页面最多预览 100 条新增/删除记录、200 个变化单元格和 12 列;完整差异可下载 JSON,有内容时还提供分开的 CSV。CSV 导出会给可能被表格软件当公式执行的值加单引号;JSON 保留源字符串。不会上传文件或自动更新主表。

JSON 导出完整新增/删除记录与共同列的全部变化单元格;修改记录不导出为并排的完整旧/新行。

操作示例

示例输入

id,name
001,Ada
002,Bo

新版 CSV:
id,name
001,Ada Lovelace
003,Cy
示例参数
{"key": "id"}

示例输出

{
  "added": [
    {
      "id": "003",
      "name": "Cy"
    }
  ],
  "removed": [
    {
      "id": "002",
      "name": "Bo"
    }
  ],
  "changed": [
    {
      "key": "001",
      "cells": [
        {
          "column": "name",
          "before": "Ada",
          "after": "Ada Lovelace"
        }
      ]
    }
  ],
  "columnsAdded": [],
  "columnsRemoved": []
}

出现问题时

使用两份各低于 1 MiB、行宽一致的 UTF-8 CSV,主键在每侧均须非空且唯一,并选择双方共有的列名;数据太大时先缩小范围。

常见问题

仅行顺序变化会算作差异吗?

不会。记录按所选唯一主键的原字符串匹配,前导零有区别;其他同名列按字符串比较。

能把差异下载成 CSV 吗?

可以。有内容时,新增记录、删除记录和变化单元格各有单独 CSV 下载;完整 JSON 还包括新增/删除列名。CSV 导出会给公式式值加单引号。

能自动更新主表或比较很大的导出吗?

不能。它只报告差异,不改写源文件。每侧最多 1 MiB、20 万解析单元格;更大导出需要其他流程。

文档与延伸阅读

相关工具