Appearance
TableFlow 使用指南
TableFlow 是一款 Chrome 浏览器扩展(MV3),用于从网页表格中提取、预览、去重并导出数据。
当前版本(v1.6.1)支持:原生表格扫描、框架表格识别、虚拟滚动表格检测与滚动全量采集、列选择与配置、识别列(内置+自定义规则)、自动翻页采集、数据预览与去重、断线续采(含行级检查点)、模板系统(含自动检测)、自定义规则管理、嵌套/跨域 iframe 表格采集,以及 Pro 订阅体系(激活码 + LicenseHub 在线验证;月付 ¥5 / 年付 ¥40);Chrome 压缩包用户可通过应用内更新检测获取新版本(详见下文「自动更新」)。v1.6.0 新增完全离线激活(离线授权文件,仅 Pro,见下文「离线激活」)、页码序列翻页、单元格表单控件所见即所得读取与调试控制台网络取证。
目录
安装与加载
前置条件
- Chromium 内核浏览器(Chrome / Edge / 360 极速等)
- 开发者模式
安装步骤
- 下载项目并构建:
bash
git clone <仓库地址>
cd table-flow
pnpm install
pnpm build- 打开浏览器,地址栏输入
chrome://extensions/ - 开启右上角的「开发者模式」
- 点击「加载已解压的扩展程序」
- 选择项目目录下的
dist-chrome/文件夹
验证安装
- 浏览器工具栏出现 TableFlow 图标
- 打开任意包含表格的网页,点击图标打开浮动操作面板
- 面板中显示该页面的表格列表
自动更新
Edge 商店用户由浏览器自动更新,无需任何操作;本节适用于 Chrome 压缩包用户(通过
table-flow-v<版本>.zip手动加载)。
更新检测
- 打开浮动面板时自动检测一次(距上次成功检查 ≥6 小时,避免频繁请求);发现新版本时面板顶部显示横幅「发现新版本 vX」
- 点击「查看更新」打开新压缩包下载地址;点击「忽略」后该版本不再提示
更新设置
设置 → 更新:
- 自动检查更新 开关:默认开启;关闭后不再自动检测(也不显示横幅)
- 检查更新 按钮:随时手动检测,结果内联展示(已是最新 / 发现新版本 + 去下载)
安装新版本
- 下载新压缩包并解压
- 打开
chrome://extensions/,点击 TableFlow 卡片上的刷新图标(⟳),或移除旧目录后重新「加载已解压的扩展程序」 - 确认版本号已更新
快速上手
一次完整的导出流程:
- 打开包含表格的网页
- 点击工具栏图标打开 TableFlow 浮动操作面板
- 在表格列表中选择一个表格
- 勾选需要导出的列(可按需拖拽排序)
- 点击「下一步」进入预览
- 确认数据无误后,选择导出格式并导出
详细操作说明
第一步:选择表格
打开浮动操作面板后,TableFlow 会自动扫描当前页面的所有 <table> 元素。
列表信息:
- 每个表格项显示:序号 + 前 2 行内容预览 + 列数/行数
- 框架表格(Element UI / Ant Design / Bootstrap / Element Plus el-table-v2 等)会自动识别并正确读取
- 虚拟滚动表格旁标注「虚拟列表」;采集时会自动滚动视口,尽量读全量行(样式矩阵在虚拟采集下为空)
- 列表最多显示 20 个表格,超出部分不展示
选中表格:
- 点击列表项选中对应表格
- 页面上的表格会显示蓝色实线外描边(6px outline,带脉冲动效,便于确认选中的是哪个表格)
- 切换选中时,旧高亮自动移除,新高亮添加
注意事项:
- 切换浏览器标签页时会自动重新扫描该页面的表格
- 页面 DOM 变化时不会崩溃,点击「刷新」按钮可重新扫描
- 若页面无可用的
<table>,面板显示「未检测到表格」 - 打开
chrome://等特殊页面时,面板显示不可用提示,不崩溃
第二步:列配置
选中表格后进入列配置界面。
基本操作:
- 默认全部列已勾选
- 可单独取消/勾选列(至少保留 1 列)
- 「全选」和「反选」快捷按钮
- 拖拽列名左侧的手柄可调整导出顺序
- 浏览器不支持拖拽时,提供上移/下移箭头按钮替代
识别列(v0.2):
识别列功能允许你为已有列挂接正则规则,预览阶段按规则对该列数据做验证。
内置规则:97 条识别规则,分 12 个分类(联系方式 / 身份信息 / 时间日期 / 财务金融 / 网络技术 / 编码编号 / 科学医疗 / 交通运输 / 地理位置 / 体育娱乐 / 商业企业 / 编程开发)。
配置识别列的步骤:
- 在列列表对应行勾选「识别」
- 点击该行的「选择」按钮打开规则选择器(支持搜索、热门推荐、分类展开)
- 选定规则后挂到该列,预览时列头显示规则名标签
- 采集完成后,预览页对该列执行正则验证(全部命中 / 部分命中 / 全部未命中)
自定义规则(v0.5): 除了内置规则,你还可以创建自定义识别规则,在规则选择器内单独成区。详见自定义规则管理章节。
自定义列(v1.0):
在列配置界面点击「+ 新增列」按钮,可添加自定义空列(使用 _custom_ 前缀标识)。新增列支持编辑列名和删除,适用于手动填写额外数据的场景。
采集模式:
- 「仅当前页」:只采集当前页面的数据
- 「自动翻页」:自动翻页采集多页数据(需要页面支持翻页)
- 翻页模式下可设置最大采集页数(默认 50 页,翻页到末页或数据为空时自动停止)
第三步:数据预览与去重
采集完成后或加载已有数据后进入预览界面。
预览界面:
- 展示前 10 行数据,超出部分显示「… 共 N 行」
- 两种视图可切换:
- 表格视图:行列对齐,与最终导出效果一致
- 卡片视图:每行数据展示为一张卡片,字段垂直排列
- 识别列的列头背景为蓝色,与原始列区分
去重功能(v0.3 / v1.0):
预览页提供两个去重按钮:
- 「去重」:点击后自动检测整行重复,弹出对话框展示重复组
- 「高级去重」(v1.0 独立按钮):直接打开带列选择界面的对话框,可指定「去重键列」,只比较选定列的值
常规操作:
- 默认模式:整行数据完全相同时判定为重复
- 检测到重复时弹出对话框,展示重复组详情(可点击展开组内各行)
- 未发现重复时仅 Toast「未发现重复数据」,不打开对话框
- 点击「一键全部去重」:每组保留第一条,其余删除
- 点击「忽略,直接导出」:关闭对话框,留在预览步继续导出
- 去重后可点击「恢复原始数据」还原全部行
界面操作:
- 「返回修改」:回到列配置界面
- 「去重」:触发整行去重检测
- 「高级去重」:指定列进行去重(v1.0)
- 「确认导出」:进入导出格式选择
第四步:导出
选择导出格式并执行导出。
支持的导出格式:
| 格式 | 特点 |
|---|---|
| Excel (.xlsx) | 首行粗体列名,手机号/身份证强制文本格式,列宽自适应;支持「保留网页样式」开关(v1.0),开启后保留背景色/字体/合并单元格 |
| CSV | UTF-8 BOM 编码,Excel 直接打开中文不乱码,自动处理逗号和引号 |
| JSON | 两种结构可选:数组格式或对象格式(含元数据),格式化输出 |
| 剪贴板 | 同时写入 HTML 表格和纯文本两种格式,粘贴到 Excel 列自动对齐 |
导出后:
- 导出成功后可点击「保存为模板」将当前配置保存
模板系统
模板系统(v0.4)允许你将列配置、识别列设置、采集模式和导出格式保存下来,下次访问同域名或同页面时自动匹配并应用。
保存模板
导出完成后,点击「保存为模板」按钮:
- 输入模板名称(必填,最长 30 字符)
- 选择匹配维度:
- 按域名:该域名
example.com下的所有页面共享此模板 - 按完整 URL:仅当访问完全相同的页面时才匹配
- 按域名:该域名
- 点击确认保存
模板保存内容:
- 列选择(已勾选的列名及顺序,包括自定义列的标记与位置)
- 识别列配置(列名 → 规则ID 映射)
- 采集模式(当前页/翻页)
- 最大采集页数
- 导出格式
- 去重键配置
应用模板
当你再次打开包含表格的页面时:
- 面板顶部显示横幅:「检测到 N 个匹配模板」
- 点击横幅展开模板列表
- 列表项显示:模板名 + 保存时间 + 匹配维度标签(域名/URL)
- 点击模板名即可应用
- 在模板管理页中,匹配当前页面的模板会自动高亮并分组到「匹配当前页面」区域,方便快速定位
列不一致处理:
- 如果当前表格的列名和模板保存时不一致,会弹出对话框
- 列出未找到的列名
- 提供两个选项:「忽略未找到的列,继续应用」或「取消」
管理模板
在面板中通过导航进入模板管理页(TemplateManageView):
- 查看列表:所有已保存模板以卡片形式展示
- 自动检测:面板会根据当前页面 URL 自动识别匹配的模板,将模板分为两组:
- 匹配当前页面(蓝色高亮边框):与当前域名或完整 URL 匹配的模板优先展示
- 其他模板:不匹配当前页面的模板以普通样式展示
- 重命名:修改模板名称
- 覆盖更新:用当前的列配置覆盖已保存的模板配置
- 删除:二次确认后删除模板,不可恢复
存储空间:
- 模板存储在
chrome.storage.sync,总容量上限 100KB - 使用量接近 80KB 时,顶部会显示存储空间预警
- 建议定期清理不再需要的模板
自定义规则管理
自定义规则管理(v0.5)允许你创建自己的识别规则,扩展内置识别类型无法覆盖的场景。
入口
在配置识别列时打开规则选择器,其底部有「管理自定义规则 →」链接,点击即可进入规则管理页。
内置规则
规则管理页展示内置识别规则(常用推荐 + 分类展开列表,只读),共 97 条规则、12 个分类 (联系方式 / 身份信息 / 时间日期 / 财务金融 / 网络技术 / 编码编号 / 科学医疗 / 交通运输 / 地理位置 / 体育娱乐 / 商业企业 / 编程开发)。
内置规则不可编辑或删除。
新增自定义规则
点击「新建规则」按钮:
- 规则名(必填):最多 30 字符
- 描述(选填):最多 100 字符,说明该规则的用途
- 正则表达式(必填):输入用于匹配数据的正则
- 正则测试:在测试框中输入示例字符串,实时显示匹配结果
- 匹配成功显示「✅ 匹配」
- 匹配失败显示「❌ 不匹配」
- 正则语法错误时输入框下方显示红色提示,禁止保存
编辑自定义规则
在规则列表中点击「编辑」按钮:
- 可修改规则名、描述和正则表达式
- 保存后 Toast 提示「规则已更新」
- 引用此规则的模板下次应用时将自动使用新正则
删除自定义规则
在规则列表中点击「删除」按钮:
- 无模板引用:直接弹出二次确认,确认后删除
- 有模板引用:弹出警告对话框,显示规则名和受影响模板数,确认后才能删除
删除后,使用该规则的模板中对应的识别列将失效,需手动重新配置。
在识别列中使用自定义规则
创建自定义规则后,回到列配置界面:
- 打开规则选择器,自定义规则单独成区并标注条数
- 搜索关键词可同时过滤内置与自定义规则
- 选定自定义规则后像内置规则一样挂到该列
模板联动
当应用保存的模板时,如果模板包含已删除的自定义规则:
- 弹出对话框,列出已删除的规则名
- 提示「对应识别列将被跳过,其余配置正常应用」
- 提供「继续应用」和「取消」选项
翻页采集
翻页采集适用于分页列表类的页面;同域虚拟滚动表支持页内暂停与断点续滚。
免费版限制:自动翻页免费用户最多可开启 3 次采集流程(每次流程页数不限,中断/刷新同样消耗次数);用完后翻页锁定,升级 Pro 解锁无限翻页。
启动翻页采集
- 在列配置界面将采集模式切换为「自动翻页」
- 设置最大采集页数(默认 50 页)
- 点击「下一步」
- 弹出翻页确认框,确认后开始采集
翻页按钮识别
按以下优先级识别翻页入口(受设置页「页码分页器」总开关与列配置页细档影响):
- 用户手动选择(点击页面上的下一页按钮或任意页码数字,30 秒无操作自动取消)
- 通用自动识别(检测「下一页」「›」「next」等文字或 class)
- 页码序列分页器:页面没有「下一页」按钮、只有
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 次流程,页数不限 | 无限翻页 |
订阅与激活流程
- 付款:点击工具栏「Pro」按钮进入订阅页,选择微信支付或支付宝,扫码支付月费 ¥5 或年费 ¥40(每个支付渠道对应月费/年费两张收款码)
- 获取激活码:付款后添加开发者 QQ 好友,发送付款截图与订阅页顶部的设备码(在线/离线激活都需要设备码绑定签发);添加时请在备注中填写「TableFlow 订阅」,便于快速核对
- 激活:在订阅页的激活码输入框粘贴激活码(
TF-开头)并确认;激活成功后 Pro 功能立即解锁,「账户」页显示许可证状态
激活方式(hybrid):激活码本地验签通过即解锁(激活后可离线使用);激活/解绑时需联网完成在线绑定(一码一设备)。网络不可达时先临时解锁,联网后后台自动确认;确认失败(如激活码已绑定其他设备)会自动撤回。
离线激活(v1.6.0,完全断网环境)
适用于客户环境完全无法联网的场景(仅 Pro 订阅支持):
- 在目标设备打开订阅页,页面顶部常驻「本设备码」卡片(在线/离线激活都需凭它绑定,前 16 位短码,可一键复制);完整 64 位设备码需在该页浏览器开发者工具 Console 中查看并复制
- 将「激活码 + 完整设备码」提供给开发者,由 LicenseHub 平台签发离线授权文件(
TFOL-开头,与本机设备码强绑定,有效期不超过激活码有效期) - 回到订阅页「离线激活」,粘贴离线授权文件(v2 文件已内嵌激活码,只需粘贴文件),点击激活;全程不发送任何网络请求,校验通过即激活
- 离线授权不经服务器登记:换设备或需要提前吊销时,请联系开发者重新签发;文件过期后重新联网激活或申请新文件
账户页
「账户」页展示:许可证状态、过期倒计时、免费/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 功能,免费版锁定。订阅并激活后自动解锁。