Handsontable 教程和实战

提示:文章还会持续更新

目录

  • 前言
  • 一、Handsontable 是什么?
  • 二、使用步骤
    • 1.安装
    • 2.引入库
    • 3.往表格写入数据
    • 4. 效果图
  • 总结


前言

工作中用到了handsontable,正好通过这个文章系统得总结一下。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Handsontable 是什么?

首先放一下官方文档地址,喜欢阅读英文的小伙伴可以主要参考官方文档。
Handsontable官方文档
简单的来讲就是一套在线excel表格。

二、使用步骤

1.安装

React:npm install @handsontable/react handsontable
Angular:npm install @handsontable/angular handsontable
Vue:npm install @handsontable/vue handsontable

2.引入库

代码如下(示例):

<script>
import Handsontable from 'handsontable'
</script><style src="../../../../node_modules/handsontable/dist/handsontable.full.css"></style>

3.往表格写入数据

代码如下(示例):

<div id="tableMaterial" />
// 渲染setHotTable() {this.hot = new Handsontable(document.getElementById('tableMaterial'), {width: '100%',height: 500,stretchH: 'all',className: 'htCenter',// rowHeaders: true,  //左侧表头是否显示data: [],manualColumnResize: true,colWidths: [20,,20,20],colHeaders: true,colHeaders: ['材料id(read-only)', '材料名', '是否清楚材料是否必须上传', '是否清楚产生方式', '相关图片(read-only)'],columns: [{data: 'materialId',type: 'numeric',editor: false},{data: 'materialName'},{data: 'qnrIsRequired',type: 'checkbox',// checkedTemplate: 1,// uncheckedTemplate: 0},{data: 'qnrProduceSource',type: 'checkbox'},{data: 'ssMaterialQnrPic',renderer: "html",  // 将字符传转化成html,并渲染htmleditor: false}],afterChange: (change, source) => {console.log('change cell')console.log(change)if (source === 'loadData') {return; //don't save this change}if (!this.autoSave) {return;}this.autoChangeSave(change) // 数据变动 调用自定义方法保存// clearTimeout(autosaveNotification);// ajax('scripts/json/save.json', 'GET', JSON.stringify({ data: change }), function (data) {//     this.exampleConsole = 'Autosaved (' + change.length + ' ' + 'cell' + (change.length > 1 ? 's' : '') + ')';//     autosaveNotification = setTimeout(function () {//         this.exampleConsole = 'Changes will be autosaved';//     }, 500);// });},// contextMenu: {      // 右键点击出现的菜单//     items: {//         row_above: {//             name: '上方插入一行'//         },//         row_below: {//             name: '下方插入一行'//         },//         remove_row: {//             name: '删除行'//         }//     }// },licenseKey: 'non-commercial-and-evaluation',}

4. 效果图

在这里插入图片描述


总结

提一个遇到的坑,父子组件的所有标签里也不能有同名的id,如果有同名的标签id, this.hot = new Handsontable(document.getElementById(‘table’), {…}) 时,只会在父组件的标签里去渲染。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部