ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

hucre 表格导出 HTML/Markdown 与 HTML 表格爬取实战:双向流动指南

hucre 表格导出 HTML/Markdown 与 HTML 表格爬取实战:双向流动指南 hucre 表格导出 HTML/Markdown 与 HTML 表格爬取实战双向流动指南【免费下载链接】hucreZero-dependency spreadsheet engine. Read write XLSX, CSV, ODS. Pure TypeScript, works everywhere.项目地址: https://gitcode.com/gh_mirrors/hu/hucrehucre 是一个零依赖的纯 TypeScript 电子表格引擎除了读写 XLSX、CSV、ODS 之外还提供了一套轻量的文本格式互转能力toHtml与toMarkdown能把工作表一键导出为网页表格或 Markdown 表格fromHtml则能反向解析任意网页里的 HTML 表格为结构化工作表——让表格数据在 Excel 与网页之间双向流动是报表发布与数据抓取的实用组合拳。一分钟了解 hucrehucre 的核心卖点是「零依赖 全格式」零依赖没有 npm 依赖树ESM 原生可直接跑在 Node、Deno、Bun、Cloudflare Workers 和浏览器里读多格式XLSX / ODS / CSV / JSON / XML / XLS / XLSBread()自动嗅探写多格式XLSX / ODS / CSV / TSV / JSON / NDJSON / XML /HTML / Markdown可摇树Tree Shaking只导入用到的部分CSV 模块 gzip 后约 3.7 KB。安装只需一行npm install hucre本文聚焦四个函数toHtml、toMarkdown、fromHtml以及 CLI 的convert命令。它们都从包入口直接导出也可以按需从 src/export/index.ts 对应子模块导入。从工作表导出 HTML带样式、深色模式与无障碍toHtml把一个 Sheet 渲染成标准table默认输出干净、可直接嵌进任何网页import { readXlsx, toHtml } from hucre const wb await readXlsx(fileBuffer) const html toHtml(wb.sheets[0], { hasHeaderRow: true, // 首行渲染为 thead styles: true, // 单元格内联 CSS字体、填充、边框、对齐 classes: true, // 按类型加 hucre-num / hucre-bool / hucre-date 类 })几个默认关闭但很有用的开关完整定义见 HtmlExportOptions选项默认作用hasHeaderRowfalse首行输出为th scopecolstylesfalse把单元格样式转成内联style粗体、背景色、边框等includeStyleTagfalse附带一段响应式style自动适配深色模式caption—输出caption表格标题ariaLabel—给表格加aria-label方便读屏软件细节上它处理了不少容易翻车的点单元格内容会做 HTML 实体转义 防注入合并单元格自动转成colspan/rowspan见 buildMergeMap日期统一输出为YYYY-MM-DD。一个典型场景把月度报表直接嵌入邮件或内部门户加上includeStyleTag: true就能拿到自带深色模式样式的完整表格不用手写一行 CSS。从工作表导出 Markdown自动对齐与转义toMarkdown输出标准 GFM 表格数字列自动右对齐、字符串列左对齐import { toMarkdown } from hucre const md toMarkdown(wb.sheets[0]) // | Name | Price | Stock | // |--------|-------:|------:| // | Widget | 9.99 | 142 |值得了解的行为实现见 src/export/markdown.ts自动对齐扫描每列首个非空值数字列输出---:右对齐分隔符也可用alignment显式指定转义保护单元格里的*、_、、[等内联语法字符会被转义*not emphasis*就是字面文本管道符|与换行符无条件转义换行变成br保证表格结构不碎宽度截断超过maxWidth默认 50 字符的单元格会被截断加...。⚠️Markdown 是展示输出不是数据交换格式。截断和br都是单向的hucre 也没有fromMarkdown——官方明确不会加。需要数据保真时请用 CSV 或 JSON 做中转。如果你的某列本来就含想被渲染的 Markdown比如一列**加粗**标签传escapeInline: false即可。反向爬取fromHtml 解析任意网页表格fromHtml把 HTML 表格字符串解析成一个Sheet——注意是任何人的表格不限于 hucre 自己导出的import { fromHtml, writeXlsx } from hucre const sheet fromHtml(scrapedHtml, { sheetName: Scraped, typeInference: true, // 从文本推断数字、布尔、ISO 日期 }) const xlsx await writeXlsx({ sheets: [sheet] }) // 抓完直接落盘它对真实网页的「脏数据」相当宽容类型推断td42/td读回为数字42007默认保留为字符串保护前导零实体与换行nbsp;、mdash;等命名实体会解码br变成单元格内换行结构还原colspan/rowspan还原为合并单元格tfoot无论声明在何处都会落到表格底部与浏览器渲染一致caption写入sheet.a11y.summarythead行写入sheet.a11y.headerRow脚本隔离script/style内容整体跳过不会被误当成单元格文本优雅降级遇到未闭合注释、截断标签等无法完成的标记时解析停止在出错处并返回已读到的行而不是抛错丢掉整张表。多表格页面默认读取第一个table传tableIndex: 1可指定读取第 N 个。注意fromHtml 不是 toHtml 的逆函数HTML 导出面向「展示」回读时样式信息不会恢复官方给出了明确对照toHtml写入fromHtml读取colspan/rowspan✅ 还原为sheet.mergesthead或整行th✅sheet.a11y.headerRowcaption✅sheet.a11y.summaryhucre-num等类型类✅ 还原单元格类型内联style、style块❌ 不读取role/aria-label❌ 不读取另有两个小不对称回读时单元格文本会被 trimtd周围的空白视为缩进日期在导出时已丢掉了时分秒。如果你要把抓回来的 Sheet 再导出为 HTML可以把两个无障碍提示传回去round-trip 示例toHtml(sheet, { hasHeaderRow: sheet.a11y?.headerRow 0, caption: sheet.a11y?.summary, })不想写代码CLI convert 命令一步转换hucre 附带命令行工具convert子命令支持在 XLSX、ODS、CSV、TSV、JSON、NDJSON、XML、HTML、Markdown 之间按扩展名互相转换实现见 src/cli/commands.ts# 网页表格 → Excel hucre convert in.html out.xlsx # Excel 报表 → Markdown贴进文档 / Issue / 周报 hucre convert report.xlsx report.md # 管道用法stdin 进、stdout 出 cat data.csv | hucre convert - - --to html两点提醒文本格式转换只携带单元格值样式、图表等不迁移这是convert的设计约定写到 stdout 时必须用--to显式指明格式避免往终端喷二进制。另外.xls/.xlsb在 CLI 中是只读格式可作转换的输入但不能作输出。实战清单双向流动怎么做才稳发布报表到网页toHtml(sheet, { hasHeaderRow: true, styles: true, includeStyleTag: true })一个调用拿到自适应深色模式的完整表格往文档里贴表格toMarkdown自动对齐、自动转义放心贴进支持 GFM 的渲染器抓取网页表格fromHtml拿到结构化 Sheet 后writeXlsx落盘或直接write({ format: json })转 JSON 入库数据交换别用 Markdown展示用 Markdown流转用 CSV / JSON——这是官方定下的边界超大文件配合streamXlsxRows流式读取再逐行喂给导出函数内存恒定不随行数增长。小结hucre 用三个函数补齐了表格数据的「最后一公里」toHtml负责带样式地上架toMarkdown负责进文档fromHtml负责把散落在网页里的表格变回结构化数据CLI 的convert则把整条链路压缩成一条命令。零依赖、纯 TypeScript 的它可以在服务端、边缘函数甚至浏览器里跑同一份逻辑——对于「表格数据双向流动」这类需求这就是完整、简单且开箱即用的答案。更多接口速查可参考 README 的 API 总表规格覆盖情况见 docs/SPEC-COVERAGE.md。【免费下载链接】hucreZero-dependency spreadsheet engine. Read write XLSX, CSV, ODS. Pure TypeScript, works everywhere.项目地址: https://gitcode.com/gh_mirrors/hu/hucre创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表