Day19 如何做合并单元格

这篇博客介绍了如何在Luckysheet中实现单元格合并的功能,包括核心算法mergeborder()的实现和配置,以及在celldata和config中的设置。此外,还讲解了如何添加合并单元格的菜单项下拉选单,涉及到constant.js和menuButton.js的修改,实现合并单元格按钮的事件处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

返回目录

 

以下知识源码位置: [Git:  https://gitee.com/zhouweng/mini_sheet  version=172da5e714f751ce4a7de9fe38efd308fd09d382]

源代码回滚版本,参考这里[ https://blog.youkuaiyun.com/u010593516/article/details/113767587 ]

 

今天的内容非常高级,也很有难度,包括合并单元格的界面实现以及菜单项下拉选单的实现方法,具体的配置方法可以参考luckysheet的官网指引,除了celldata的v标签设置mc以外,还需要设置config的merge区域,具体实现后的效果如下:

 

 

 

1.显示单元格合并

1.1.增加文件

1.1.1.model/mergeborder.js: mergeborder()这个函数是支持合并单元格的核心算法,根据单元格数据flowdata、行号和列号,计算出合并单元格边界数组返回消费端;

1.2.修改文件

1.2.1.index.html: 根据luckysheet的规范,我们定义了 [2,2]-[3,3] 四个单元格合并,修改 celldata和config;

1.2.2.view/chooseOneCell.js: highlightOneCell() 在点选单元格的时候,判断是否在合并单元格区域,并在refresh界面前进行显示边界处理;

1.2.3.view/draw.js: luckysheetDrawMain()在循环处理单元格数据后,将合并单元格的数据写入mcArr数组,最后再循环处理这个数组;

1.2.4.view/updateCell.js: getColumnAndRowSize()获取行宽、列高的方法,增加合并单元格的判断;

 

2.菜单项合格单元格按钮

2.1.修改文件

2.1.1.utils/constant.js: 增加合并单元格按钮的下拉选单dropListMenu

2.1.2.controllers/menuButton.js: 增加 #luckysheet-icon-merge-button (合并单元格按钮)和 #luckysheet-icon-merge-menu(合并单元格选单)的事件,这一部分稍微有一点复杂。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值