常见场景
后台报表、第三方网站列表、Angular/React 数据表格——往往只能在线看,不能下载 Excel。手动 Ctrl+C 容易列错位、合并单元格乱掉。
ComTools HTML 转 Excel(Tools/Excel/HtmlToExcel)在浏览器本地解析 HTML,预览表格后:
- 复制到 Excel(TSV + HTML 双格式剪贴板)
- 导出 Excel 下载
.xlsx - 框选单元格 复制为 SQL IN 子句
支持的 HTML 结构
| 类型 | 示例 |
|---|---|
| 标准表格 | <table>、<thead>、<tbody>、<tr>、<td> |
| Bootstrap 网格 | .row + .col / .col-* |
| ngx-datatable | datatable-* 组件结构 |
| 无障碍表格 | role="table"、role="gridcell" |
解析逻辑见 excel-html-parse.js,自动推断行列。
使用步骤
- 在目标网页按
F12,选中表格节点,复制 outerHTML。 - 打开 HTML 转 Excel,粘贴到左侧输入框。
- 右侧自动预览表格;可点击示例快速体验。
- 选择后续操作:
- 复制到 Excel → 打开 Excel,
Ctrl+V粘贴 - 导出 Excel → 下载
html-export.xlsx - 框选单元格 → 复制为 WHERE IN → 得到
IN (N'...', ...)
- 复制到 Excel → 打开 Excel,
复制到 Excel 的原理
剪贴板同时写入:
text/plain:制表符分隔(TSV)text/html:带<table>的 HTML
Excel 粘贴时列对齐比纯文本复制更稳定。
选中单元格生成 IN 子句
在预览表中单击、Shift 连选、Ctrl 多选单元格,点击「复制为 IN」:
IN (N'1001', N'1002', N'ORD-2024-001')
可粘贴进 WHERE id IN (...),或配合 文本转 SQL 调整分隔符。
常见场景
| 场景 | 做法 |
|---|---|
| 报表页抓取 | Copy outerHTML → 本工具 → 导出 xlsx |
| Bootstrap 后台 | 复制 .container 下表格区域 |
| 只要 ID 列表查库 | 选中 ID 列 → 复制 IN |
| 再美化 / 入库 | 格式化 → 转 SQL |
| 与 Excel 内置复制对比 | 复杂 DOM 用本工具更稳 |
隐私说明
HTML 在浏览器本地解析,不上传页面内容(导出 xlsx 时会将解析后的行数据提交服务端生成文件)。敏感页面优先使用「复制到 Excel」本地路径。
与其他文章
- HTML Bootstrap 表格技巧(旧文,内容已并入本篇思路)
- HTML 表格复制到 Excel
- Excel 格式化
- URL 参数里的 ID 列表
常见问题
Q:复制整页 HTML 可以吗?
A:尽量只复制表格相关节点,减少无关 div 干扰解析。
Q:合并单元格?
A:复杂合并可能展开为多格重复值,导出后请在 Excel 中核对。
Q:ngx-datatable 不识别?
A:尝试复制 datatable-body 或内部 <table> 片段。
Q:导出和复制哪个更好?
A:临时分析用复制;要 合并、去重 或发文件用导出。