前端excel库调研

背景

想做一个带AI的报表功能,因此调研了前端的excel库。

excel相关库

带excel编辑和写入的

  • sheetjs

    • 社区版不带样式
    • 支持导入excel并转成html展示在页面上
    • 支持导出excel
  • exceljs

    • 不支持导入excel
    • 可以写入excel
  • luckysheet + luckyexcel

轻量级的预览方案

  • vue office

onlyoffice

具体方案

……..
一开始问了kimi,给了上面这些结论。吭哧吭哧研究了半天,本地跑了sheetjs,exceljs,luckysheet,发现都不满足需求。
后来看到新闻说manus不需要邀请码了,于是让manus调研了上面的问题,结果和我手动调研的基本一致,但内容更加完善。内容放在下面:

前端Excel框架对比

下表对比了多个前端框架,旨在帮助您选择能够在浏览器端导入、预览、编辑并导出Excel,并且可免费使用的解决方案。

特性 Luckysheet exceljs SpreadJS ONLYOFFICE Docs (Community Edition)
核心功能
导入Excel 支持 (.xlsx) 支持 (.xlsx, .csv) 支持 (.xlsx, .xls, .csv, .json) 支持 (.xlsx, .xls, .ods, .csv)
预览Excel 支持,所见即所得的在线表格界面 不直接提供UI预览,需结合其他UI库或自行实现 支持,提供丰富的类Excel界面 支持,提供完整的在线编辑器界面
编辑Excel 支持,单元格编辑、公式、样式、条件格式等 主要用于数据操作和修改,不直接提供UI编辑功能,需自行构建编辑界面 支持,功能强大,类似桌面Excel 支持,功能完整,包括单元格编辑、公式、图表、协作等
导出Excel 支持 (.xlsx) 支持 (.xlsx, .csv) 支持 (.xlsx, .xls, .csv, .pdf, .json) 支持 (.xlsx, .xls, .ods, .csv, .pdf)
授权与费用
免费使用 否 (商业授权) 是 (社区版免费)
开源协议 MIT MIT 商业授权 AGPL v3.0
集成与易用性
集成复杂度 相对容易,提供CDN和NPM包,有Vue/React等示例 作为库集成较容易,但实现完整UI编辑器需额外开发 相对复杂,但提供完善的API和文档 提供Docker镜像和多种集成方式,有一定部署和集成工作量
文档与示例 较完善,社区活跃 完善 非常完善,商业支持 较完善,有社区和官方文档
社区活跃度 较高 (GitHub stars: 16k+),但官方已宣布不再维护,推荐使用其升级版Univer 非常高 (GitHub stars: 14k+) 商业产品,主要依赖官方支持 较高 (GitHub stars: 4k+ for DocumentServer)
备注 纯前端,功能丰富,接近Excel体验。官方已停止维护,推荐其升级版Univer (需进一步调研Univer的免费策略和功能)。 强大的Excel文件处理库,适合数据层操作,构建完整UI编辑器需额外工作。 功能非常强大,性能优秀,但属于商业付费产品。 功能全面的在线Office套件,社区版免费,但AGPL协议有一定限制,需注意其对衍生项目代码开源的要求。适合需要完整Office编辑体验的场景。

结论与建议

根据您的需求——能够在浏览器端导入、预览、编辑Excel并执行导出,且能够免费使用——以下框架值得重点考虑:

  1. Luckysheet
    • 优点:纯前端实现,功能非常接近桌面Excel,满足所有核心需求,采用MIT开源协议,完全免费。社区有一定活跃度,有Vue、React等集成示例。
    • 缺点:官方已声明不再积极维护此项目,并推荐其后续产品 Univer。这意味着未来可能不会有新的功能更新或bug修复。在选择前,建议评估其当前版本的稳定性和功能是否满足长期需求,或者进一步调研 Univer 是否有免费版本且满足需求。
  2. **ONLYOFFICE Docs (Community Edition)**:
    • 优点:提供非常完整的在线Excel编辑体验,功能强大,支持多种格式导入导出,社区版免费且开源 (AGPL v3.0)。
    • 缺点:AGPL v3.0 协议具有较强的传染性,如果您的项目需要闭源或者不想受此协议约束,则可能不适用。集成和部署可能比纯前端库稍复杂,因为它是一个完整的文档服务器解决方案。
  3. exceljs
    • 优点:一个非常强大且流行的JavaScript库,用于读取、操作和写入Excel文件,采用MIT开源协议,完全免费。社区活跃,文档完善。
    • 缺点:它本身不提供用户界面 (UI) 进行预览和编辑。您需要基于exceljs自行开发或集成其他UI组件来实现完整的浏览器端Excel编辑体验。如果您的项目需要快速实现一个带界面的编辑器,exceljs可能需要较多的开发工作量。

不推荐的选项

  • SpreadJS:虽然功能非常强大,最接近桌面Excel体验,并且有良好的商业支持,但它是商业授权产品,不符合您“免费使用”的要求。

最终建议

  • 如果您需要一个开箱即用、功能完整且免费的纯前端Excel编辑组件,并且可以接受其维护状态(或愿意调研其推荐的后续产品Univer),Luckysheet 是一个不错的选择。
  • 如果您需要一个功能强大的在线Office套件,并且可以接受AGPL v3.0协议以及一定的部署工作,ONLYOFFICE Docs Community Edition 是一个强有力的候选者。
  • 如果您更倾向于在数据层面处理Excel,并且愿意投入开发资源构建自定义的UI界面,exceljs 是一个优秀的底层库。

请您根据项目的具体需求、开发资源以及对开源协议的接受程度来选择最合适的框架。

作者

helili

发布于

2025-05-12

更新于

2025-05-23

许可协议

评论