- 初始化单元格
- 基础合并单元格
- 单元格内容编辑
- 新增一行
- 新增一列
- 新增行考虑合并单元格
- 新增列考虑合并单元格
- 合并已合并单元格
- 删除行
- 删除列
- 删除合并单元格所在行和列
- 删除合并单元格对应行和列
- 单元格长宽可拖拉
rows | 表格的行数 |
---|---|
cols | 表格的列数 |
/**
* 初始化表格参数
* @param rows
* @param cols
* @param content
*/
const TableInit = <T>(rows:number,cols:number,content:T):T[][]=> {
const res = [];
for(let i = 0; i < rows; i++){
const temp = [];
for(let j = 0; j < cols; j++){
temp.push(content);
}
res.push([...temp])
}
return res;
}
禁用文字选中效果
td {
text-align: left;
padding: 8px;
user-select:none;
border: 1px solid black; /* 添加底部横线 */
}
isMouseDown | 记录鼠标是否按下 |
---|---|
startCell | 记录开始的单元格 |
endCell | 记录结束的单元格 |
元素是一个通用的块级容器,用于组织和布局其他 HTML 元素。当设置 contenteditable="true" 时,
元素会变为可编辑状态,用户可以在其中输入和编辑文本,类似于一个简单的富文本编辑器。
function set_focus(el: HTMLElement) {
console.log(el);
el.contentEditable = 'true'
const range = document.createRange();
range.selectNodeContents(el);
range.collapse(false);
const sel = window.getSelection();
sel!.removeAllRanges();
sel!.addRange(range);
}
实现表格合并的关键是采用表格的rowSpan和colSpan属性。
- 将开始的单元格的rowSpan和colSpan分别设置为选中单元格区域的跨行数和跨列数。
- 隐藏其它的单元格 这里的开始的单元格总是最小索引值对应的那个单元格