### 说明

#### 核心方法

* 为handsontable添加钩子触发事件（具体方法可见 六、事件汇总）
* alter(action,index,amount,source,keepEmptyRows)添加行或列，删除行或列
* clear():清空表格数据
* colOffset():获取可见的第一列的索引值
* colToProp(col):返回给定索引列的列名，col为列索引
* countCols():统计表格的所有列总数，并返回
* countEmptyCols(ending):
* countRenderedCols():统计并返回被渲染的列数
* countVisibleCols():统计并返回可见的列数，当返回-1时，表格不可见
* deselectCell():取消当前被选中的单元格
* destory():移除dom对象中的表格
* destoryEditor(reverOriginal)
* getActiveEditor():返回一个活跃的编辑对象。
* getCell(row.col,topmost):
* 16 getCellMeta(row,col):根据行列索引获取单元格的属性对象
* 15 getCellEditor():获取单元格的编辑器
* 17 getCellRenderer(row,col):根据单元格的行列索引获取单元格的渲染函数
* 18 getCellValidator():获取单元格的校验器
* 19 getColHeader(col):根据列索引获取列头名称
* 20 getColWidth(col):根据列索引获取列宽
* 21 getCoords(elem):获取元素的坐标
* 22 getCopyableData(startRow,startCol,endRow,endCol):获取指定范围的单元格数据
* 23 getData(row1,col1,row2,col2):获取指定范围的单元格的数据
* 24 getDataAtCell(row,col):根据行列索引获取单元格的值
* 25 getDataAtCol(col):根据列索引获取一列的数据
* 26 getDataAtProp(prop):根据对象属性名获取相应的列的数据,prop为属性名
* 27 getDataAtRowProp(row,prop):根据行索引返回指定属性名的值
* 28 getInstance():获取一个handsontable实例
* 29 getPlugin(pluginName):根据插件名称获取一个插件实例
* 30 getSelected():获取被选中的单元格的索引数组
* 31 getSelectedRange():获取被选中的单元格的坐标
* 32 getSettings():获取对象的配置信息
* 33 getSourceDataAtCol(col):根据列号获取data source中的该列数据
* 34 getValue():获取所有被选中的单元格的值
* 35 hasColHeaders():返回是否存在列头
* 36 isEmptyCol(col):根据列索引判断该列是否为空
* 37 isListening():判断当前handsontable实例是否被监听
* 38 loadData(data):加载本地数据
* 39 populateFormArray(start,input,end,source,method,direction,deltas):
* 40 propToCol(prop):返回给定属性名的列索引，prop为属性名
* 41 removeCellMeta(row,col,key):根据行列索引移除指定的属性对象
* 42 removeHook(key,callback):移除钩子方法
* 43 render():渲染表格
* 44 rowOffset():获取第一个可见行的索引
* 45 setCellMeta(row,col,key,val):设置参数属性和值到指定行列的单元格
* 46 setCellMetaObject(row,col,prop):设置属性对象到指定的单元格
* 47 setDataAtCell(row,col,value,source):设置新值到一个单元格
* 48 setDataAtRowProp(row,prop,value,source):设置指定行的属性值为指定的值
* 49 updateSettings(setting,init):修改初始化的配置信息
* 50 validdateCells(callback):使用验证器验证所有单元格

#### 组件事件描述

* 1 afterChange (changes: Array, source: String)：1个或多个单元格的值被改变后调用
* 2 beforeChange (changes: Array, source: String)：开始改变单元格前被调用
* 3 afterCellMetaReset ()：重置单元格后调用
* 4 afterColumnMove (oldIndex: Number, newIndex: Number)：列顺序被移动后触发
* 5 afterRowMove (oldIndex: Number, newIndex: Number)：行被移动后调用
* 6 afterRowResize (col: Number, size: Number)：行高改变后调用
* 7 afterRemoveCol (index: Number, amount: Number)：当一列或多列被移动后调用
* 8 afterRemoveRow (index: Number, amount: Number)：当一行或多行被移动后调用
* 9 beforeRemoveCol (index: Number, amount: Number)：一列或多列被移动前调用
* 10 beforeRemoveRow (index: Number, amount: Number)：一行或多行被移动前被调用
* 11 afterColumnSort (column: Number, order: Boolean)：列排序后调用
* 12 beforeColumnSort (column: Number, order: Boolean)：列排序前被调用
* 13 afterCreateCol (index: Number, amount: Number)：添加行后被调用
* 14 afterCreateRow (index: Number, amount: Number)：添加行后被调用
* 15 afterGetCellMeta (row: Number, col: Number, cellProperties: Object)：获取单元格的配置信息后被调用
* 16 beforeGetCellMeta (row: Number, col: Number, cellProperties: Object)：获取单元格属性前被调用
* 17 afterSetCellMeta(row: Number, col: Number, key: String, value: *)：单元格样式被改变后调用
* 18 afterGetColHeader (col: Number, TH: DOM Node)：获取列头信息后被调用，TH是行头节点
* 19 afterGetColWidth (col: Number, response: Object)：获取列宽后被调用
* 20 afterColumnResize (col: Number, size: Number)：列宽度被手动修改后调用
* 21 afterCopyLimit (selectedRowsCount: Number, selectedColsCount: Number,copyRowsLimit: Number, copyColsLimit: Number)
* 22 afterDestroy ()：销毁Handsontable实例后被调用
* 23 afterInit ()：Handsontable实例被初始化后调用
* 24 beforeInit ()：Handsontable实例被初始化前调用
* 25 beforeInitWalkontable()：Walkontable实例被初始化前调用
* 26 afterLoadData ()：新的数据被加载到数据资源后被调用
* 27 afterOnCellCornerMouseDown (event)：鼠标点击单元格边角后被调用
* 28 afterOnCellMouseDown (event: Object, coords: Object, TD: Object)：点击单元格或行头/列头后被调用
* 29 afterOnCellMouseOver (event: Object, coords: Object, TD: Object)：鼠标停悬在单元格或行头/列头后调用
* 30 afterRender (isForced: Boolean)：渲染表格后被调用
* 31 beforeRender (isForced: Boolean)：渲染前被调用
* 32 afterRenderer (TD: Object, row: Number, col: Number, prop: String, value: String, cellProperties: Object)：手动渲染后调用
* 33 beforeChangeRender ()：渲染被改变前调用
* 34 afterDeselect ()：当前单元格被取消选中时调用
* 35 afterSelection (r: Number, c: Number, r2: Number, c2: Number)：当一个或多个单元格被选中后调用
* 36 afterSelectionByProp (r: Number, p: String, r2: Number, p2: String)：通过属性名选中单元格后调用
* 37 afterSelectionEnd (r: Number, c: Number, r2: Number, c2: Number)：选中单元格鼠标抬起后调用
* 38 afterSelectionEndByProp (r: Number, p: String, r2: Number, p2: String)：通过属性选中单元格鼠标抬起后调用
* 39 afterUpdateSettings ()：配置参数配修改后调用
* 40 afterValidate (isValid: Boolean, value: Mixed, row: Number, prop: String,source: String)
* 41 beforeValidate (value: Mixed, row: Number, prop: String, source: String)：验证器被调用前调用该事件
* 42 beforeAutofill (start: Object, end: Object, data: Array)：开始自动填充前调动
* 43 beforeKeyDown (event: Object)：按键按下前被调用
* 44 beforeSet (var: Object)：单个配置值被设置前调用
* 45 beforeSetRangeEnd(coords: Array)：设置范围结束前被调用
* 46 modifyCol(col: Number)：列被修改时调用
* 47 modifyRow( row: Number)：行被修改时调用
* 48 modifyColWidth (width: Number, col: Number)：列宽被修改时调用
* 49 modifyRowHeight (height: Number, row: Number)：行高被修改时调用
