handsontable使用及遇到的坑--mergeCell、合并单元格
程序员文章站
2022-07-13 14:28:11
...
在一般的博客中看的合并单元格的方法
一般博客中用的updateSetting这个方法,我只想说真的是没真正的用心用过,如
handsontableIntance.updateSettings({
//....其他
mergeCells: [
{
row: 0,
col: 0,
rowspan: 2,
colspan: 2
}
]
},false);
这样来解决合并单元格个真的是一点软件开发的常识都没得
用官方提供的接口
官方其实是以插件的方式提供,
官方文档是这么写的
merge(startRow, startColumn, endRow, endColumn)
然而不管是handsontableInstance.merge还是handsontableInstance.mergeCells.merge都找不到这个方法
要先获取插件然后使用
let mergeCellIntance = handsontableIntance.getPlugin('mergeCells');
mergeCellIntance 提供哪些方法呢
export interface MergeCellsPlugin {
autofillCalculations: any;
enabled: boolean;
hot: handsontable;
initialized: boolean;
isPluginsReady: boolean;
mergedCellsCollection: MergedCellsCollection; // 已经合并的单元格数组{row: number,col:number,rowspan:number,colspan:number,removed: boolean}[]
pluginName: string;
pluginsInitializedCallbacks: Function[];
selectionCalculations: SelectionCalculations;
t: RecordTranslator;
merge(startRow: number, startCol: number, endRow: number, endCol): void;
unmerge(startRow: number, startCol: number, endRow: number, endCol: number): void;
}
这个实例就可以调用merge和unmerge来拆分单元格
遇到的坑
- merge这个方法执行之后,会发现合并的单元格显示的是合并前左上角的那个,但是重新渲染完成后发现显示的是合并前右下角的那个,这个是什么骚操作,我也没搞懂,所有调用完拆合单元格后要重新渲染这个单元格。
- 有的时候别的单元格会莫名其妙的出现自己给拆了,或者没按预想的方式正常显示,这个时候获取所有合并的单元格mergedCellsCollection,然后重新渲染所有合并了单元格
上一篇: Javascript合并表格中具有相同内容的单元格
下一篇: SwiftUI——自定义颜色