Skip to content

TableFlow 使用指南 ​

TableFlow 是一款 Chrome 浏览器扩展(MV3),用于从网页表格中提取、预览、去重并导出数据。

当前版本(v1.6.1)支持:原生表格扫描、框架表格识别、虚拟滚动表格检测与滚动全量采集、列选择与配置、识别列(内置+自定义规则)、自动翻页采集、数据预览与去重、断线续采(含行级检查点)、模板系统(含自动检测)、自定义规则管理、嵌套/跨域 iframe 表格采集,以及 Pro 订阅体系(激活码 + LicenseHub 在线验证;月付 ¥5 / 年付 ¥40);Chrome 压缩包用户可通过应用内更新检测获取新版本(详见下文「自动更新」)。v1.6.0 新增完全离线激活(离线授权文件,仅 Pro,见下文「离线激活」)、页码序列翻页、单元格表单控件所见即所得读取与调试控制台网络取证。


目录 ​


安装与加载 ​

前置条件 ​

  • Chromium 内核浏览器(Chrome / Edge / 360 极速等)
  • 开发者模式

安装步骤 ​

  1. 下载项目并构建:
bash
git clone <仓库地址>
cd table-flow
pnpm install
pnpm build
  1. 打开浏览器,地址栏输入 chrome://extensions/
  2. 开启右上角的「开发者模式」
  3. 点击「加载已解压的扩展程序」
  4. 选择项目目录下的 dist-chrome/ 文件夹

验证安装 ​

  • 浏览器工具栏出现 TableFlow 图标
  • 打开任意包含表格的网页,点击图标打开浮动操作面板
  • 面板中显示该页面的表格列表

自动更新 ​

Edge 商店用户由浏览器自动更新,无需任何操作;本节适用于 Chrome 压缩包用户(通过 table-flow-v<版本>.zip 手动加载)。

更新检测 ​

  • 打开浮动面板时自动检测一次(距上次成功检查 ≥6 小时,避免频繁请求);发现新版本时面板顶部显示横幅「发现新版本 vX」
  • 点击「查看更新」打开新压缩包下载地址;点击「忽略」后该版本不再提示

更新设置 ​

设置 → 更新:

  • 自动检查更新 开关:默认开启;关闭后不再自动检测(也不显示横幅)
  • 检查更新 按钮:随时手动检测,结果内联展示(已是最新 / 发现新版本 + 去下载)

安装新版本 ​

  1. 下载新压缩包并解压
  2. 打开 chrome://extensions/,点击 TableFlow 卡片上的刷新图标(⟳),或移除旧目录后重新「加载已解压的扩展程序」
  3. 确认版本号已更新

快速上手 ​

一次完整的导出流程:

  1. 打开包含表格的网页
  2. 点击工具栏图标打开 TableFlow 浮动操作面板
  3. 在表格列表中选择一个表格
  4. 勾选需要导出的列(可按需拖拽排序)
  5. 点击「下一步」进入预览
  6. 确认数据无误后,选择导出格式并导出

详细操作说明 ​

第一步:选择表格 ​

打开浮动操作面板后,TableFlow 会自动扫描当前页面的所有 <table> 元素。

列表信息:

  • 每个表格项显示:序号 + 前 2 行内容预览 + 列数/行数
  • 框架表格(Element UI / Ant Design / Bootstrap / Element Plus el-table-v2 等)会自动识别并正确读取
  • 虚拟滚动表格旁标注「虚拟列表」;采集时会自动滚动视口,尽量读全量行(样式矩阵在虚拟采集下为空)
  • 列表最多显示 20 个表格,超出部分不展示

选中表格:

  • 点击列表项选中对应表格
  • 页面上的表格会显示蓝色实线外描边(6px outline,带脉冲动效,便于确认选中的是哪个表格)
  • 切换选中时,旧高亮自动移除,新高亮添加

注意事项:

  • 切换浏览器标签页时会自动重新扫描该页面的表格
  • 页面 DOM 变化时不会崩溃,点击「刷新」按钮可重新扫描
  • 若页面无可用的 <table>,面板显示「未检测到表格」
  • 打开 chrome:// 等特殊页面时,面板显示不可用提示,不崩溃

第二步:列配置 ​

选中表格后进入列配置界面。

基本操作:

  • 默认全部列已勾选
  • 可单独取消/勾选列(至少保留 1 列)
  • 「全选」和「反选」快捷按钮
  • 拖拽列名左侧的手柄可调整导出顺序
  • 浏览器不支持拖拽时,提供上移/下移箭头按钮替代

识别列(v0.2):

识别列功能允许你为已有列挂接正则规则,预览阶段按规则对该列数据做验证。

内置规则:97 条识别规则,分 12 个分类(联系方式 / 身份信息 / 时间日期 / 财务金融 / 网络技术 / 编码编号 / 科学医疗 / 交通运输 / 地理位置 / 体育娱乐 / 商业企业 / 编程开发)。

配置识别列的步骤:

  1. 在列列表对应行勾选「识别」
  2. 点击该行的「选择」按钮打开规则选择器(支持搜索、热门推荐、分类展开)
  3. 选定规则后挂到该列,预览时列头显示规则名标签
  4. 采集完成后,预览页对该列执行正则验证(全部命中 / 部分命中 / 全部未命中)

自定义规则(v0.5): 除了内置规则,你还可以创建自定义识别规则,在规则选择器内单独成区。详见自定义规则管理章节。

自定义列(v1.0):

在列配置界面点击「+ 新增列」按钮,可添加自定义空列(使用 _custom_ 前缀标识)。新增列支持编辑列名和删除,适用于手动填写额外数据的场景。

采集模式:

  • 「仅当前页」:只采集当前页面的数据
  • 「自动翻页」:自动翻页采集多页数据(需要页面支持翻页)
  • 翻页模式下可设置最大采集页数(默认 50 页,翻页到末页或数据为空时自动停止)

第三步:数据预览与去重 ​

采集完成后或加载已有数据后进入预览界面。

预览界面:

  • 展示前 10 行数据,超出部分显示「… 共 N 行」
  • 两种视图可切换:
    • 表格视图:行列对齐,与最终导出效果一致
    • 卡片视图:每行数据展示为一张卡片,字段垂直排列
  • 识别列的列头背景为蓝色,与原始列区分

去重功能(v0.3 / v1.0):

预览页提供两个去重按钮:

  • 「去重」:点击后自动检测整行重复,弹出对话框展示重复组
  • 「高级去重」(v1.0 独立按钮):直接打开带列选择界面的对话框,可指定「去重键列」,只比较选定列的值

常规操作:

  • 默认模式:整行数据完全相同时判定为重复
  • 检测到重复时弹出对话框,展示重复组详情(可点击展开组内各行)
  • 未发现重复时仅 Toast「未发现重复数据」,不打开对话框
  • 点击「一键全部去重」:每组保留第一条,其余删除
  • 点击「忽略,直接导出」:关闭对话框,留在预览步继续导出
  • 去重后可点击「恢复原始数据」还原全部行

界面操作:

  • 「返回修改」:回到列配置界面
  • 「去重」:触发整行去重检测
  • 「高级去重」:指定列进行去重(v1.0)
  • 「确认导出」:进入导出格式选择

第四步:导出 ​

选择导出格式并执行导出。

支持的导出格式:

格式特点
Excel (.xlsx)首行粗体列名,手机号/身份证强制文本格式,列宽自适应;支持「保留网页样式」开关(v1.0),开启后保留背景色/字体/合并单元格
CSVUTF-8 BOM 编码,Excel 直接打开中文不乱码,自动处理逗号和引号
JSON两种结构可选:数组格式或对象格式(含元数据),格式化输出
剪贴板同时写入 HTML 表格和纯文本两种格式,粘贴到 Excel 列自动对齐

导出后:

  • 导出成功后可点击「保存为模板」将当前配置保存

模板系统 ​

模板系统(v0.4)允许你将列配置、识别列设置、采集模式和导出格式保存下来,下次访问同域名或同页面时自动匹配并应用。

保存模板 ​

导出完成后,点击「保存为模板」按钮:

  1. 输入模板名称(必填,最长 30 字符)
  2. 选择匹配维度:
    • 按域名:该域名 example.com 下的所有页面共享此模板
    • 按完整 URL:仅当访问完全相同的页面时才匹配
  3. 点击确认保存

模板保存内容:

  • 列选择(已勾选的列名及顺序,包括自定义列的标记与位置)
  • 识别列配置(列名 → 规则ID 映射)
  • 采集模式(当前页/翻页)
  • 最大采集页数
  • 导出格式
  • 去重键配置

应用模板 ​

当你再次打开包含表格的页面时:

  1. 面板顶部显示横幅:「检测到 N 个匹配模板」
  2. 点击横幅展开模板列表
  3. 列表项显示:模板名 + 保存时间 + 匹配维度标签(域名/URL)
  4. 点击模板名即可应用
  5. 在模板管理页中,匹配当前页面的模板会自动高亮并分组到「匹配当前页面」区域,方便快速定位

列不一致处理:

  • 如果当前表格的列名和模板保存时不一致,会弹出对话框
  • 列出未找到的列名
  • 提供两个选项:「忽略未找到的列,继续应用」或「取消」

管理模板 ​

在面板中通过导航进入模板管理页(TemplateManageView):

  • 查看列表:所有已保存模板以卡片形式展示
  • 自动检测:面板会根据当前页面 URL 自动识别匹配的模板,将模板分为两组:
    • 匹配当前页面(蓝色高亮边框):与当前域名或完整 URL 匹配的模板优先展示
    • 其他模板:不匹配当前页面的模板以普通样式展示
  • 重命名:修改模板名称
  • 覆盖更新:用当前的列配置覆盖已保存的模板配置
  • 删除:二次确认后删除模板,不可恢复

存储空间:

  • 模板存储在 chrome.storage.sync,总容量上限 100KB
  • 使用量接近 80KB 时,顶部会显示存储空间预警
  • 建议定期清理不再需要的模板

自定义规则管理 ​

自定义规则管理(v0.5)允许你创建自己的识别规则,扩展内置识别类型无法覆盖的场景。

入口 ​

在配置识别列时打开规则选择器,其底部有「管理自定义规则 →」链接,点击即可进入规则管理页。

内置规则 ​

规则管理页展示内置识别规则(常用推荐 + 分类展开列表,只读),共 97 条规则、12 个分类 (联系方式 / 身份信息 / 时间日期 / 财务金融 / 网络技术 / 编码编号 / 科学医疗 / 交通运输 / 地理位置 / 体育娱乐 / 商业企业 / 编程开发)。

内置规则不可编辑或删除。

新增自定义规则 ​

点击「新建规则」按钮:

  1. 规则名(必填):最多 30 字符
  2. 描述(选填):最多 100 字符,说明该规则的用途
  3. 正则表达式(必填):输入用于匹配数据的正则
  4. 正则测试:在测试框中输入示例字符串,实时显示匹配结果
    • 匹配成功显示「✅ 匹配」
    • 匹配失败显示「❌ 不匹配」
    • 正则语法错误时输入框下方显示红色提示,禁止保存

编辑自定义规则 ​

在规则列表中点击「编辑」按钮:

  • 可修改规则名、描述和正则表达式
  • 保存后 Toast 提示「规则已更新」
  • 引用此规则的模板下次应用时将自动使用新正则

删除自定义规则 ​

在规则列表中点击「删除」按钮:

  • 无模板引用:直接弹出二次确认,确认后删除
  • 有模板引用:弹出警告对话框,显示规则名和受影响模板数,确认后才能删除

删除后,使用该规则的模板中对应的识别列将失效,需手动重新配置。

在识别列中使用自定义规则 ​

创建自定义规则后,回到列配置界面:

  • 打开规则选择器,自定义规则单独成区并标注条数
  • 搜索关键词可同时过滤内置与自定义规则
  • 选定自定义规则后像内置规则一样挂到该列

模板联动 ​

当应用保存的模板时,如果模板包含已删除的自定义规则:

  • 弹出对话框,列出已删除的规则名
  • 提示「对应识别列将被跳过,其余配置正常应用」
  • 提供「继续应用」和「取消」选项

翻页采集 ​

翻页采集适用于分页列表类的页面;同域虚拟滚动表支持页内暂停与断点续滚。

免费版限制:自动翻页免费用户最多可开启 3 次采集流程(每次流程页数不限,中断/刷新同样消耗次数);用完后翻页锁定,升级 Pro 解锁无限翻页。

启动翻页采集 ​

  1. 在列配置界面将采集模式切换为「自动翻页」
  2. 设置最大采集页数(默认 50 页)
  3. 点击「下一步」
  4. 弹出翻页确认框,确认后开始采集

翻页按钮识别 ​

按以下优先级识别翻页入口(受设置页「页码分页器」总开关与列配置页细档影响):

  1. 用户手动选择(点击页面上的下一页按钮或任意页码数字,30 秒无操作自动取消)
  2. 通用自动识别(检测「下一页」「›」「next」等文字或 class)
  3. 页码序列分页器:页面没有「下一页」按钮、只有 1 2 3 … N 数字页码时,自动按页码顺序采集——每轮点击当前页的下一页码,末页自动结束;页码窗口滑动、组件重建均可自适应,误点会被页码连续校验拦截并暂停保护已采数据

拾取到数字页码时会弹确认框:「按页码序列采集(推荐)/ 仍用固定按钮 / 取消」。

设置:页码分页器 ​

总开关在「设置 → 数据设置 → 采集设置」,默认开启;列配置页的采集模式区只保留并存时的细档(仅当总开关为开且翻页方式为自动识别时渲染;手动选择的翻页形态由用户拾取决定,不出现该行):

总开关行为
开启(默认)页码序列参与翻页形态仲裁;可在列配置页选「优先下一页(默认)/ 优先页码」
关闭完全不使用页码序列模式(行为与旧版本一致),列配置页不再出现该细档
细档行为
优先下一页(默认)启动时有下一页按钮用按钮;按钮缺失/禁用且页码可用时,采集中自动切换到页码序列
优先页码页码序列优先;页码不可用时自动回落下一页按钮

两种细档都是「偏好 + 运行时自动切换」而非绝对:采集中一种形态不可用会自动重检测切换到另一种(每轮至多一次),只有两种形态都穷尽才判定末页。该设置只对自动识别生效;手动拾取的页码确认框不受此设置限制。

免费版额度按「流程」计数:一次页码序列采集与一次下一页按钮采集一样各计 1 次(共 3 次流程),流程内页数不限。

暂停 / 继续 / 本页重采 ​

  • 暂停:同域表可立刻停止页内滚动或按行确认;已采行保留并落盘
  • 继续:未采完整的页从断点补剩余(不默认整页重采);已封页则翻到下一页
  • 本页重采:仅当本页未封完时出现;丢弃本页草稿后从顶重新采本页(封页失败时的兜底)
  • 跨域 iframe 表:本页读取不可中断,暂停将在本页读完后生效

安全机制 ​

  • 可设置最大采集页数(默认 50 页,翻页到末页或数据为空时自动停止)
  • 检测到最后一页(按钮 disabled 或消失;页码模式下当前页码已达实时末页)自动停止
  • 可随时点击「暂停」或「终止」(均有 Toast 反馈提示)
  • 翻页按钮找不到时 Toast 提示,引导用户手动选择(也可点击任意页码数字切换为页码序列采集)
  • 翻页结束(按钮禁用 / 明确末页 / 页码序列到底)时 Toast 告知结束原因;合法重复数据页会继续采集,不会被误判为末页
  • 翻页超时或定位失败会暂停并保留断点,可检查当前页后继续,而不会伪装成已采完;页码模式下若实际页码与预期不符(防窗口滑动点错号)同样暂停保护,不跳页漏采
  • 虚拟页须「封页」证明完整后才允许翻下一页,避免残缺页脏翻页

单元格里的输入框/下拉框 ​

表格单元格内如果嵌有输入框、下拉选择、文本域(包括只读 readonly 与禁用 disabled 状态), 采集时一律按页面上当前可见的值导出:编辑过的内容不会被漏采或采成旧初值; 联想候选(datalist)等页面看不到的内容不会混进单元格。密码框固定输出为脱敏点号, 隐藏域(type=hidden)因用户不可见不采集。预览页统计栏会显示「已按显示值读取 N 个表单单元格」。

翻页确认框 ​

翻页模式下点击「开始采集」后会弹出确认框,提示将从当前页开始采集。手动选择模式下不做自动检测,仅验证已选定的翻页入口(选择器/签名),入口已变化时提示重新点选。


断线续采 ​

断线续采允许你在采集过程中关闭 Panel 或暂停后恢复;支持页内断点(未采完的当前页可续)。

触发条件 ​

再次打开 Panel 时,如果检测到未完成的采集缓存,顶部显示横幅。未封完的页会标明「第 N 页未封完」。

操作选项 ​

操作说明
继续采集 / 继续本页按检查点 pagePhase 对齐:已封页先翻页;next_ready 直接读已进入的下一页;未封页同页续采已确认之后的行
直接导出已采集 N 条跳过采集,直接加载已缓存的数据进入预览;含未封页时会提示可能不完整
丢弃重新开始二次确认后清除缓存,从第 1 页开始全新采集

缓存说明 ​

  • 采集过程中经单写者队列写入 chrome.storage.local(含页内检查点)
  • 缓存接近 5MB 时会提示建议先导出

Pro 订阅 ​

TableFlow 采用订阅制(v1.3.0):核心采集导出功能免费使用,Pro 功能通过激活码订阅解锁。

免费版与 Pro 版功能对比 ​

功能免费版Pro 版
表格识别与选择支持支持
自定义列配置支持支持
数据预览支持支持
数据导出(Excel/CSV/JSON/复制)支持支持
整行去重支持支持
模板系统不可用一键复用采集/导出配置
列数据验证(识别列)不可用自定义验证规则
高级去重整行去重按指定键列去重
自动翻页3 次流程,页数不限无限翻页

订阅与激活流程 ​

  1. 付款:点击工具栏「Pro」按钮进入订阅页,选择微信支付或支付宝,扫码支付月费 ¥5 或年费 ¥40(每个支付渠道对应月费/年费两张收款码)
  2. 获取激活码:付款后添加开发者 QQ 好友,发送付款截图与订阅页顶部的设备码(在线/离线激活都需要设备码绑定签发);添加时请在备注中填写「TableFlow 订阅」,便于快速核对
  3. 激活:在订阅页的激活码输入框粘贴激活码(TF- 开头)并确认;激活成功后 Pro 功能立即解锁,「账户」页显示许可证状态

激活方式(hybrid):激活码本地验签通过即解锁(激活后可离线使用);激活/解绑时需联网完成在线绑定(一码一设备)。网络不可达时先临时解锁,联网后后台自动确认;确认失败(如激活码已绑定其他设备)会自动撤回。

离线激活(v1.6.0,完全断网环境) ​

适用于客户环境完全无法联网的场景(仅 Pro 订阅支持):

  1. 在目标设备打开订阅页,页面顶部常驻「本设备码」卡片(在线/离线激活都需凭它绑定,前 16 位短码,可一键复制);完整 64 位设备码需在该页浏览器开发者工具 Console 中查看并复制
  2. 将「激活码 + 完整设备码」提供给开发者,由 LicenseHub 平台签发离线授权文件(TFOL- 开头,与本机设备码强绑定,有效期不超过激活码有效期)
  3. 回到订阅页「离线激活」,粘贴离线授权文件(v2 文件已内嵌激活码,只需粘贴文件),点击激活;全程不发送任何网络请求,校验通过即激活
  4. 离线授权不经服务器登记:换设备或需要提前吊销时,请联系开发者重新签发;文件过期后重新联网激活或申请新文件

账户页 ​

「账户」页展示:许可证状态、过期倒计时、免费/Pro 功能对比表,以及「解绑设备」按钮(解绑后旧激活码可在其他设备重新激活;在线激活码解绑属在线操作需联网;离线授权文件的解绑仅清除本机状态,激活码本身不换绑,换绑需联系开发者重新签发)。

免费版限制 ​

  • 自动翻页:限 3 次采集流程(单流程页数不限),用完后翻页锁定并提示升级
  • 模板系统、列数据验证(识别列)、高级去重:Pro 锁定,免费版不可用(界面带锁并提示升级)

常见问题 ​

Q: 表格没有被识别出来?

A: 点击「刷新」按钮重新扫描。确认表格不是通过 JavaScript 延迟渲染的(等待页面加载完成后再试)。某些复杂框架表格可能需要等待框架组件完全渲染。

Q: 导出的手机号变成科学计数法了?

A: 使用 Excel (.xlsx) 格式导出会自动处理此问题。如果使用 CSV 格式,在 Excel 中打开后请将单元格格式设为「文本」再粘贴。

Q: 翻页采集没有自动翻页?

A: 尝试手动选择翻页入口:在点击「翻页模式」开关后点击「手动选择」,然后点击页面上的下一页按钮或页码数字。框架类网站可能需要手动选择。

Q: 模板保存后下次打开没匹配到?

A: 确认模板的匹配维度设置是否正确。按域名匹配只比对 hostname 部分(不含路径和参数),按完整 URL 需要完全一致。

Q: 模板存储空间不足?

A: 进入模板管理页清理不再需要的模板。chrome.storage.sync 总容量上限为 100KB,每个模板数 KB 不等。

Q: 自定义规则保存后在哪里使用?

A: 回到列配置界面,在目标列勾选「识别」并打开规则选择器,自定义规则在选择器内单独成区;选定后像内置规则一样挂到该列。

Q: 删除自定义规则会影响已有模板吗?

A: 会。如果模板中有使用该自定义规则的识别列,删除规则后应用模板时会提示「该模板包含已删除的规则」,对应识别列将被跳过。

Q: 如何验证自定义正则是否正确?

A: 在新增/编辑规则时,使用正则测试框输入示例字符串即可实时验证。匹配成功显示「✅ 匹配」,语法错误会显示红色提示。

Q: 免费版翻页次数用完了怎么办?

A: 免费版自动翻页限 3 次采集流程(页数不限,中断/刷新同样消耗次数)。用完后翻页会锁定并提示升级,订阅 Pro 后解锁无限翻页。

Q: 如何订阅 Pro?

A: 点击工具栏「Pro」按钮进入订阅页:微信/支付宝扫码付款(月费 ¥5 / 年付 ¥40)→ 添加开发者 QQ 好友,发送付款截图与设备码(备注「TableFlow 订阅」)→ 获取激活码后在订阅页输入激活。

Q: 激活码可以换设备使用吗?

A: 一码一设备。激活码在线绑定时与设备绑定;需要换设备时,在旧设备的「账户」页点击「解绑设备」,解绑后激活码可在新设备重新激活。

Q: 激活 Pro 需要联网吗?

A: 常规激活(hybrid):激活码本地验签通过即可解锁(可离线使用);激活/解绑时需联网完成在线绑定。网络不可达时先临时解锁,联网后后台自动确认。完全断网环境可改用「离线激活」:凭设备码向开发者申请离线授权文件,本地验签即激活(见上文「离线激活」)。无论哪种激活方式,订阅页顶部都常驻展示本设备码。

Q: 为什么我的模板/识别列/高级去重不可用?

A: 这些是 Pro 功能,免费版锁定。订阅并激活后自动解锁。

采集、预览与导出在本地完成 · 匿名错误诊断可在设置中关闭