前端excel库调研
背景
想做一个带AI的报表功能,因此调研了前端的excel库。
excel相关库
带excel编辑和写入的
-
- 社区版不带样式
- 支持导入excel并转成html展示在页面上
- 支持导出excel
-
- 不支持导入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并执行导出,且能够免费使用——以下框架值得重点考虑:
- Luckysheet:
- 优点:纯前端实现,功能非常接近桌面Excel,满足所有核心需求,采用MIT开源协议,完全免费。社区有一定活跃度,有Vue、React等集成示例。
- 缺点:官方已声明不再积极维护此项目,并推荐其后续产品 Univer。这意味着未来可能不会有新的功能更新或bug修复。在选择前,建议评估其当前版本的稳定性和功能是否满足长期需求,或者进一步调研 Univer 是否有免费版本且满足需求。
- **ONLYOFFICE Docs (Community Edition)**:
- 优点:提供非常完整的在线Excel编辑体验,功能强大,支持多种格式导入导出,社区版免费且开源 (AGPL v3.0)。
- 缺点:AGPL v3.0 协议具有较强的传染性,如果您的项目需要闭源或者不想受此协议约束,则可能不适用。集成和部署可能比纯前端库稍复杂,因为它是一个完整的文档服务器解决方案。
- 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 是一个优秀的底层库。
请您根据项目的具体需求、开发资源以及对开源协议的接受程度来选择最合适的框架。