Skip to content

web端的类excel表格组件调研 #1

@joe-sky

Description

@joe-sky

组件分类

有几种不同的方式都可以开发在线类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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions