-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
组件分类
有几种不同的方式都可以开发在线类excel表格的功能:
1. 深度开发的js表格组件
例如 Handsontable (点击查看demo),特点如下:
- 各种表格相关
功能非常全面,通常有免费版和收费版; - 一些高级功能在
收费版中提供。
2. 通用型js表格组件
例如 ant-design的表格组件 (点击查看demo),特点如下:
- 容易适配各种
常规表格开发的场景,更容易做定制化; - 但一些高级功能例如
拖拽、单元格计算则需要自行实现。
3. 操作真实excel的js库
例如 js-xlsx (点击查看demo),和上述js表格组件有本质区别:
- 本质属于用js在页面上
读取、展示或写入真实的excel文件; - 可以用在纯前端方式开发excel
导入、导出功能。
上述三种组件开发在线excel功能对比
| 功能 | Handsontable | Ant-Design的Table组件 | js-xlsx |
|---|---|---|---|
| 单元格可编辑 | ⭕ | ⭕ | ⭕ |
| 单元格间公式计算 | 收费版可支持,也可自行实现 | 可自行实现 | ✖️ |
| 合并单元格 | ⭕ | ⭕ | ⭕ |
| 拖拽排序列 | ⭕ | 可结合第三方组件实现 | ⭕ |
| 拖拽排序行 | ⭕ | 可结合第三方组件实现 | ✖️ |
| 拖拽列宽 | ⭕ | 可结合第三方组件实现 | ⭕ |
| 列头菜单 | ⭕ | 可自行实现 | ✖️ |
| 表头分多级 | 收费版可支持 | ⭕ | ⭕ |
| 单元格右键菜单 | 收费版可支持 | 可自行实现 | ⭕ |
| 按条件筛选列数据 | 收费版可支持 | ⭕ | ⭕ |
| 隐藏列 | 收费版可支持 | 可自行实现 | ⭕ |
| 拖拽单元格复制数据 | ⭕ | 可自行实现,但较困难 | ✖️ |
| 导出excel文件 | 收费版可支持 | 可结合第三方组件实现 | ⭕ |
| 导入excel数据 | 可结合第三方组件实现 | 可结合第三方组件实现 | ⭕ |
| 前端框架支持 | 原生js、React、Vue、Angular | React | 原生js |
技术选型建议
- 综上所述,Handsontable 的功能是比较全的,完成度较高,样式也比较像专业的在线excel软件;但是一些
核心功能需要购买收费版; - Ant-Design的Table组件
可自行定制化的能力很强,如投入一定开发资源,也可自行定制并实现功能较强的在线excel软件。
我本人曾使用Ant-Design的Table组件方案开发过有大量单元格计算的在线类excel表格项目。
- js-xlsx 的功能相对上述两种比起来更死板一些,但是优势在于
可读取操作真实excel文件。也可和上述表格组件结合使用,比如弥补导出、导入excel功能。
Metadata
Metadata
Assignees
Labels
No labels