基于wangEditor富文本编辑器,粘贴表格内容智能生成带样式的表格

news/2024/10/22 14:37:01/

需求背景:公司运营人员发布线上业务公告,需要用到富文本编辑器,但是公告里带有样式的表格富文本编辑器却做不到,只能在其他地方制作成图片放进来,效率比较低下。

把内容粘贴进去,然后生成这么一个东西.

解决思路:解决这个问题需要用到v5版本(快速开始 | wangEditor这是链接),我是在vue里面用的,其他框架解决思路都是一样地。

第一步,先用onPaste这个事件去阻止默认粘贴行为(这里只说思路,具体用法自行查阅文档搜索customPaste),(if那个判断是用来区分粘贴的内容是普通文本还是表格内容),

粘贴的内容格式如下,先把内容获取到,然后用split正则把内容按照每一行分开,代码如上,code是生成了一个数组。addTable()就是我自己写的生成表格的函数。

 

第二步, 就是看我们上面说的addTable函数怎么写,也就是拿到了按行分割的表格内容后怎么生成表格。

 核心是这个api。将表格生成并插入进编辑器,表格的节点数据结构必须符合它的要求,

   //生成表格,插入编辑器addTable(data) {//表格数据结构let initTableNode = {type: 'table',width: 'auto',children: []}data.forEach((rowData, indexI) => {let tempRowNode = {type: 'table-row',children: []}//遍历行数据的每一个单元格,生成一个列数据结构并push进行数据结构rowData.split(/\s+/).forEach(colOfRowData => {let tempColNode = {type: 'table-cell',isHeader: false,children: [{text: colOfRowData}]}if (indexI == 0) {tempColNode.isHeader = true}tempRowNode.children.push(tempColNode)})//行数据结构生成push进表格数据结构initTableNode.children.push(tempRowNode)})//遍历结束把表格插入进去this.editor.insertNode(initTableNode)},

 到这一步只能生成这种原始不带样式的表格,那么下一步就要修改样式了。✌️

 第三步,修改表格样式。查看控制台表格标签名就是table,那就好办了。

看招------>(为什么要遍历呢,因为可能有多个表格哈。)

      document.getElementsByTagName('table').forEach(tableNode => {this.changeStyle(tableNode)})

然后根据个人需要改样式,改样式这里只截个图哈,每个人需求不一样,基本思路就是那样,个人根据需要进行编写即可。

 看下图,需要注意地是tr并没有直接放在table里面,而是在table的一个子节点tbody里面,所以改

tr样式需要


http://www.ppmy.cn/news/429773.html

相关文章

CSS入门选择器

CSS中,基本的选择器有通用选择器、标签选择器、类选择器和id选择器。 1.通用选择器 使用“*”来定义通用选择器,通用选择器的意义是对所有元素生效。 2.标签选择器 标签选择器,顾名思义,我们可以通过标签名…

瑞数vmp系列

经过一个月的不懈努力,瑞数vmp网站都通用了,专利商标需要联系🧐

Vpro取图

#方法1 private ICogFrameGrabber mFrameGrabber null;private ICogAcqFifo mAcqFifo null;private void InitializeAcquisition() { // 步骤 1/4 - 创建 CogFrameGrabbers 图像采集卡CogFrameGrabbers mFrameGrabbers new CogFrameGrabbers();if (mFrameGrabbers.Count<…

RISC-V系列

RISC-V RISC-V RISC-V 从头开始研究RISC-V CPU已经有一段时间&#xff0c;今天总结一下前段工作的感想。RISC-V代码并不复杂&#xff0c;但是软件生态离ARM还是相差很远。折腾环境花了很多时间。verilog加C代码&#xff0c;软硬件联调更是原始&#xff0c;以后慢慢把这些坑都填…

RISC-V 处理器出货 100 亿颗,与X86、ARM形成三足鼎立之势

关注星标公众号&#xff0c;不错过精彩内容 来源 | OSC开源社区 前不久&#xff0c;OSCHINA 和 Gitee 联合发布了《2022 中国开源开发者报告》&#xff0c;其中&#xff0c;提到了关于 RISC-V 的几点内容。 凭借指令精简、模块化、可扩展、开源的优势&#xff0c;RISC-V 架构在…

vPro里面的v代表什么意思?

Intel的vPro品牌现在也算是有头有脸、名声在外了&#xff0c;不过不知道大家有没有考虑过vPro本身的含义呢&#xff1f;“Pro”比较好理解&#xff0c;就是 “Professional”&#xff0c;意思是说这是专业版本&#xff0c;类似与“Windows XP Professional”里面的Professional…

RISC-V基本介绍

文章目录 前言一、命名规范二、模块化ISA三、一些概念1. 指令格式2. 寄存器3. 特权级别4. CSR&#xff08;控制和状态寄存器&#xff09; 四、学习资料1. 官方资料2. 开发参考 总结 前言 RISC-V作为目前大火的开源指令集架构有着自己的独特魅力&#xff0c;本文将对其基本情况…

2017年最受欢迎的十大开源黑客工具

过去的2017年&#xff0c;对于大多数信息安全从业人员来说是无话可说的一年&#xff0c;充斥各种狗血的开脑洞的剧情&#xff0c;可以出问题的地方全部都出了问题&#xff0c;从MongoDB数据库、到WiFi安全协议、英特尔处理器漏洞、到NSA的超级武器包、僵尸摄像头、会挖矿的海盗…