当前位置: 首页 > news >正文

Handsontable 表格组件的使用

文章目录

    • 1. 安装 Handsontable
    • 2. 创建一个基本表格
    • 3. 主要配置
      • 3.1、 data 数据
      • 3.2、 columns 指定列配置
    • 4. Handsontable 高级功能
      • 4.1、 添加排序
      • 4.2、 过滤数据
      • 4.3、 选中行高亮
      • 4.4、 只读单元格
      • 4.5、 校验数据
    • 5. Handsontable 与 Vue结合
    • 6. 总结

Handsontable 是一个强大的 JavaScript 表格组件,类似于 Excel,支持 数据绑定、单元格编辑、排序、筛选、验证、合并单元格等功能,适用于 Web 端的数据表格管理。

https://handsontable.com/

1. 安装 Handsontable

  • 方式 1:使用 npm 安装
npm install handsontable
  • 方式 2:通过 CDN 引入
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/handsontable/dist/handsontable.full.min.css">
<script src="https://cdn.jsdelivr.net/npm/handsontable/dist/handsontable.full.min.js"></script>

2. 创建一个基本表格

<div id="example"></div><script>// 获取 HTML 元素var container = document.getElementById('example');// 初始化 Handsontablevar hot = new Handsontable(container, {data: [["张三", 25, "男"],["李四", 30, "女"],["王五", 28, "男"]],colHeaders: ["姓名", "年龄", "性别"],  // 列标题rowHeaders: true,  // 显示行号width: "100%",height: 300,licenseKey: "non-commercial-and-evaluation" // 许可证(免费版)});
</script>

这是个基本的表格,可直接编辑单元格。

3. 主要配置

3.1、 data 数据

支持 数组 或 对象数组:

data: [{ name: "张三", age: 25, gender: "男" },{ name: "李四", age: 30, gender: "女" }
]

3.2、 columns 指定列配置

columns: [{ data: "name", type: "text" },{ data: "age", type: "numeric" },{ data: "gender", type: "dropdown", source: ["男", "女"] }
]

✅ 作用:指定列类型,支持 文本、数字、下拉框、日期、复选框等。

4. Handsontable 高级功能

4.1、 添加排序

columnSorting: true  // 允许点击表头排序

4.2、 过滤数据

dropdownMenu: true,   // 启用下拉菜单
filters: true         // 启用过滤

4.3、 选中行高亮

selectionMode: 'multiple'  // 允许多选

4.4、 只读单元格

cells: function (row, col) {if (col === 1) { // 让第2列只读return { readOnly: true };}
}

4.5、 校验数据

columns: [{data: "age",type: "numeric",validator: function (value, callback) {callback(value > 0 && value < 100); // 限制年龄在 1-99 之间}}
]

5. Handsontable 与 Vue结合

Vue 使用 Handsontable
安装 Vue 版本:

npm install @handsontable/vue

使用:

<template><HotTable :data="tableData" :colHeaders="['姓名', '年龄', '性别']" :columns="columns" />
</template>
<script>
import { HotTable } from "@handsontable/vue";
import "handsontable/dist/handsontable.full.css";export default {components: { HotTable },data() {return {tableData: [{ name: "张三", age: 25, gender: "男" },{ name: "李四", age: 30, gender: "女" }],columns: [{ data: "name", type: "text" },{ data: "age", type: "numeric" },{ data: "gender", type: "dropdown", source: ["男", "女"] }]};}
};
</script>

6. 总结

功能配置项
基本表格data
列标题colHeaders
行号rowHeaders
排序columnSorting: true
筛选filters: true
只读cells: { readOnly: true }
数据校验validator
Vue/React@handsontable/vue、@handsontable/react

🚀 Handsontable 适用于各种数据表格管理场景,提供 Excel 级别的编辑体验!

在这里插入图片描述


不管活成什么样子,都不要把责任推给别人。一切的苦乐都是自己造成的,任何一次选择,都有他对应的筹码,愿赌服输也是一个成年人该有的品质。。


相关文章:

  • 自己总结的选型
  • WebSocket 技术详解
  • Flink Hive Catalog最佳实践
  • 从零实现富文本编辑器#2-基于MVC模式的编辑器架构设计
  • 大模型量化实战:GPTQ与AWQ量化方案对比与部署优化
  • 大数据学习(106)-hivesql函数
  • Maven相关名词及相关配置
  • Ubuntu卸载小皮面板
  • 记一次springboot集成海康威视SDK过程
  • 九、自动化函数02
  • sprintf函数
  • 企业应如何防范 AI 驱动的网络安全威胁?
  • WAF防火墙:构筑Web应用安全的“隐形护盾”
  • emotn ui桌面tv版官网-emotn ui桌面使用教程
  • 通信算法之265: 无人机系统中的C2链路
  • 前端 -- uni-app 的 splitChunks 分包详解与实战!
  • 图像预处理-色彩空间补充,灰度化与二值化
  • 如何在不同版本的 Elasticsearch 之间以及集群之间迁移数据
  • Android ExifInterface rotationDegrees图旋转角度,Kotlin
  • 基于 PyTorch 的 LSTM 实现降雨量预测
  • 关于“十五五”,在上海召开的这场座谈会释放最新信号
  • 美航母撞船后又遇战机坠海,专家:长时间作战部署疲于奔命是主因
  • 深观察丨从“不建议将导师挂名为第一作者”说开去
  • 专访|200余起诉讼,特朗普上台100天,美国已进入宪政危机
  • 中国人保一季度业绩“分化”:财险净利增超92%,寿险增收不增利
  • 上海市十六届人大常委会第二十一次会议表决通过有关人事任免事项