精华内容
下载资源
问答
  • 之前写了两篇关于Android表格的文章,受很多同学的喜欢。github地址一些同学提出了新的需求。由于个人精力有限,只能增加个人比较实用的部分功能。下面介绍两个新功能。 附上之前两篇文章的地址 好用漂亮的...
    前言

    之前写了两篇关于Android表格的文章,受到很多同学的喜欢。github地址一些同学提出了新的需求。由于个人精力有限,只能增加个人比较实用的部分功能。下面介绍两个新功能。

    附上之前两篇文章的地址

    好用漂亮的Android 表格框架

    好用漂亮的Android 表格框架2

    数组或者List转列

    这个功能标题有点坑,举个栗子:

    举个我们熟悉的课程表例子,一个学生 student,每个星期7天,每一天有上午,下午,晚上dayTime3个时段,每个时间段有具体的课Lesson。这个课程学生是否喜欢isFav,课程下面有课程的知识点LessonPoint,我们想用表格展示一个班级里面所有学生的课程表。

    当然真实的需求可能没有这么多层级,哈哈,产品不可能这么变态这里。只是为了验证多层级是否可以正确展示。效果如下:

    注解模式

    学生类

      @SmartTable(name = "课程表")
      public class CollegeStudent {
        @SmartColumn(id = 1,name ="姓名")
        private String name;
    
        @SmartColumn(type = ColumnType.ArrayChild)
        private List<Week> weeks;
        }
          
    复制代码

    星期

      public class Week {
        @SmartColumn(id=2,name ="星期")
        private String name;
        @SmartColumn(type = ColumnType.ArrayChild)
        private List<Time> times;
       }
        ...
        
    复制代码

    时间

    public class DayTime {
        @SmartColumn(id=3,name ="时间")
        private String time;
        @SmartColumn(type = ColumnType.ArrayChild)
        private List<Lesson> lessons;
    复制代码

    后面都是依次类推,@SmartColumn 注解有个类型typeColumnType.ArrayChild 代表要深入到内部里面每个对象去获取注解和解析。

    你会发现假设是List<String>或者int[]没办法继续深入查询,那设置 ColumnType.ArrayOwn.它也会解析每个对象,但是不会继续去查询对象本身是否有注解。

    转列不只支持List还支持数组。

    普通模式
    
          Column<String> studentNameColumn = new Column<>("姓名","name");
            ArrayColumn<String> weekNameColumn = new ArrayColumn<>("星期","weeks.name");
            ArrayColumn<String> timeNameColumn = new ArrayColumn<>("时间","weeks.times.time");
            ArrayColumn<String> lessonNameColumn = new ArrayColumn<>("课程","weeks.times.lessons.name");
    
            ArrayColumn<String> pointNameColumn = new ArrayColumn<>("知识点","weeks.times.lessons.lessonPoints.name");
           ArrayColumn<Boolean> lessonFavColumn = new ArrayColumn<>("是否喜欢","weeks.times.lessons.isFav");
            TableData<CollegeStudent> tableData = new TableData<>("课程表",students,studentNameColumn,
                    weekNameColumn,timeNameColumn,lessonNameColumn,pointNameColumn,lessonFavColumn);
            table.setTableData(tableData);
    复制代码

    普通模式也很简单,只需用ArrayColumn代替Column就可以。不需要任何注解。

    由于时间限制,数组List转列功能暂不支持动态加载,自动合并 功能。一个类最多可以展示一个List(单层级).后续有时间补上。
    复制代码
    Json数据变成表格

    很多时候我们需要展示的数据列不固定,需要根据实时数据来展示,这个时候我们肯定会想到用Map key-value去接收转换成列。只需要按List传入也可解析。这里以我们常用的Json举例:

    从网上随便找了json数据。

     String json="{\"name\":\"BeJson\",\"url\":\"http://www.bejson.com\",\"page\":88,\"isNonProfit\":true,\"links\":[{\"name\":\"Google\",\"url\":\"http://www.google.com\"},{\"name\":\"Baidu\",\"url\":\"http://www.baidu.com\"},{\"name\":\"SoSo\",\"url\":\"http://www.SoSo.com\"},{\"name\":\"Google\",\"url\":\"http://www.google.com\"},{\"name\":\"Baidu\",\"url\":\"http://www.baidu.com\"},{\"name\":\"SoSo\",\"url\":\"http://www.SoSo.com\"},{\"name\":\"Google\",\"url\":\"http://www.google.com\"},{\"name\":\"Baidu\",\"url\":\"http://www.baidu.com\"},{\"name\":\"SoSo\",\"url\":\"http://www.SoSo.com\"},{\"name\":\"Google\",\"url\":\"http://www.google.com\"},{\"name\":\"Baidu\",\"url\":\"http://www.baidu.com\"},{\"name\":\"SoSo\",\"url\":\"http://www.SoSo.com\"}]}";
            
    复制代码

    和之前一样,设置表格数据:

       MapTableData tableData = MapTableData.create("表格名",JsonHelper.jsonToMapList(json));
       table.setTableData(tableData);
    复制代码

    然后调用MapTableData静态方法create创建MapTableData表格数据类即可,JsonHelper是辅助Json转成Map集合的。下面生成的表格:

    提供了格式化数据,以便null数据可以显示指定文字,提供拦截器,判断是否需要拦截该列不显示。Json解析也支持多层查询List.

    自动合并单元格功能

    这个看图说话

    未开启自动合并效果图:

    开启自动合并效果图:

    注解模式
       @SmartColumn(id =1,name = "姓名",autoMerge = true)
        private String name;
        @SmartColumn(id=2,name="年龄"autoMerge = true,maxMergeCount = 3)
        private int age;
        
    复制代码
    普通模式
        nameColumn.setAutoMerge(true);
        ageColumn.setAutoMerge(true);
        ageColumn.setMaxMergeCount(3);
    复制代码

    setAutoMerge就是开启自动合并,setMaxMergeCount设置合并最大数量,如果不是设置就是int 最大值。合并规则是根据format之后value是否相等来判断的。

    设置表格最小值

    很多时候可能我们只有两三个列,不铺满屏幕宽度,感觉好丑,

     table.getConfig().setMinTableWidth(screenWith); //设置最小宽度 
    复制代码

    是不是美观很多了呢。宽度会根据之前比例来自动扩大。

    其他
    加快显示

    如果列的格子只是单行,且列的字体大小都是相同的,你可以设置列column.setFast(true)来加快显示,这样不用重复计算每个格子宽和高。特别是数据量大的时候,测试显示快3倍。

    demo二维码:

    上面示例都放在demo中,https://github.com/huangyanbin/smartTable,最后谢谢大家支持。
    复制代码

    转载于:https://juejin.im/post/5a7a8eef5188257a84621eda

    展开全文
  • 表格中的数据是从数据库中得到的,当数据很长的时候,超过了表格的大小,那嘛表格就变形了,下面给出解决方案用样式表就可以完美的完成了,就是让表格中的字自动换行!在head里添上td{word-break: break-all; word-...

    表格中的数据是从数据库中得到的,当数据很长的时候,超过了表格的大小,那嘛表格就变形了,下面给出解决方案
    用样式表就可以完美的完成了,就是让表格中的字自动换行!

    在head里添上

    <style type="text/css">
    <!--
    td{word-break: break-all; word-wrap:break-word;}
    -->
    </style>


    这样应该就可以了,如果还不行就这样写

    <style type="text/css">
    <!--
    table{table-layout: fixed;}
    td{word-break: break-all; word-wrap:break-word;}
    -->
    </style> 

    展开全文
  • 需求 要求从excel表格复制一列,粘贴网页的input中,并自动赋值对应的input里 实现过程 使用监听paste事件,根据事件提供的clipboardData属性,获取数据 HTML代码 js代码

    需求
    要求从excel表格中复制一列,粘贴到网页的input框中,并自动赋值到对应的input框里
    在这里插入图片描述
    实现过程
    使用监听paste事件,根据事件提供的clipboardData属性,获取数据

    HTML代码

    <td>
        <input 
            v-model="item.applyPayAmount" 
            ref="payAmountInput" 
            class="payInput"
            onpaste="return false;"  
            @paste="pasteMe($event, props.row.ylwSupplierAccountDTOS, index)" />
    </td>
    

    js代码

    methods: {
        // 粘贴功能
        pasteMe(e, rowData, index) {
            let copyData = ''
            // 获取粘贴的值
            let cli`pboardData` = e.clipboardData // IE
            if (!clipboardData) {
                // chrome
                clipboardData = e.originalEvent.clipboardData
            }
            copyData = clipboardData.getData('Text')
            const rowStrArray = copyData.split('\n')
            // 去除空格
            if (rowStrArray[rowStrArray.length - 1] === '') {
                rowStrArray.pop()
            }
            // 给input赋值
            for (let i = 0; i < rowStrArray.length; i++) {
                rowData[index].applyPayAmount = rowStrArray[i]
                index++
            }
        }
    }
    
    展开全文
  • 现状描述:若复制word中表格内容或excel表格内容至正文编辑中后,表格没了,显示仅是单元格文字 这里说一下我的解决方案 1.样式 我拿这个bug后首先考虑的就是table的border的样式丢失了,所以在我参考了几篇文章后...

    现状描述:若复制word中表格内容或excel表格内容至正文编辑框中后,表格没了,显示仅是单元格文字
    这里说一下我的解决方案

    1.样式

    我拿到这个bug后首先考虑的就是table的border的样式丢失了,所以在我参考了几篇文章后 尝试了一下解决方案

    修改ueditor.all.js

    1.在文件中找到如下代码并修改

    utils.each(tables, function (table) {
        removeStyleSize(table, true);
        domUtils.removeAttributes(table, ['style']); //改这里,原来是 ['style', 'border']
        utils.each(domUtils.getElementsByTagName(table, "td"), function (td) {
            if (isEmptyBlock(td)) {
                domUtils.fillNode(me.document, td);
            }
            removeStyleSize(td, true);
        });
    });
    
    

    这是为了在复制表格的时候不被ueditor去掉border属性
    2.在我们插入表格后可以看到边框是因为编辑器里面(<iframe>中)有下面这个全局css

    td,th{ border:1px solid #DDD; }
    

    但是前台展示是没有这段全局css的,所以导致看不到边框。
    我们可以让编辑器中无边框的表格,显示成虚线灰色的边框,这也是其他很多html编辑器的处理方式。
    找到并修改下面的代码

    utils.cssRule('table',
                //选中的td上的样式
                '.selectTdClass{background-color:#edf5fa !important}' +
                    'table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}' +
                    //插入的表格的默认样式
                    'table{margin-bottom:10px;border-collapse:collapse;display:table;}' +
                    'td,th{padding: 5px 10px;border: 1px dashed #DDD;}' + //这里修改 1px solid #DDD 为 1px dashed #DDD
                    'caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' +
                    'th{border-top:1px dashed #BBB;background-color:#F7F7F7;}' + //这里修改 1px solid #BBB 为 1px dashed #BBB
                    'table tr.firstRow th{border-top-width:2px;}' +
                    '.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }' +
                    'td p{margin:0;padding:0;}', me.document);
    
    

    目的是让全局的td/th边框样式显示为灰色虚线
    3、最后就是table上右键菜单中有个"表格-设置表格边线可见"的功能。这个功能会让表格显示出实线边框,实际前台展示也是有边框的。
    现在td是有实线边框的,可是th却还是虚线,所以要改下面的代码,增加一段对th的处理
    注意:th就是表格标题列/行。可以用右键菜单"表格-插入表格标题列/行"插入th

    execCommand: function () {
        var table = getTableItemsByRange(this).table;
        utils.each(domUtils.getElementsByTagName(table,'td'),function(td){
            td.style.borderWidth = '1px';
            td.style.borderStyle = 'solid';
            td.style.borderColor = 'windowtext';
        });
        //增加下面一段
        utils.each(domUtils.getElementsByTagName(table,'th'),function(th){
            th.style.borderWidth = domUtils.getComputedStyle(th, "border-width");
            th.style.borderStyle = 'solid';
            th.style.borderColor = 'windowtext';
        });
    }
    
    

    最后如果你用的是ueditor.all.min.js,需要将改过的代码压缩一份min版本。

    当然,如果上面的方法试过仍然不好用的话可以继续往下看

    2.Ueditor黑白名单与xss过滤

    后来经过我测试发现我得表格没有边框是因为我得table 都被转成了p 标签 ,就这样我得重心开始转移,又查看了几篇文章

    百度编辑器Ueditor 黑白名单过滤

    serialize: 黑白名单配置。UEditor针对进入编辑器的富文本内容提供了节点级别的过滤,可以通过该配置的修改来达到控制富文本内容的目的,且自动开启

    黑白名单可以同时使用,也可以单独分开使用。
    黑名单中的标签将会被编辑器完整地过滤掉,包括标签本身以及标签之内的任何内容。
    而不在白名单之中的那些标签则仅被过滤了标签本身,其内容会继续走过滤流程。

    Ueditor分为前端配置与后端配置,在这两个地方都可以设置黑白名单

    var ue = UE.getEditor('jsNewsNoticeContent', {
                    toolbars:btnCmds,
                    retainOnlyLabelPasted:true,
                    pasteplain:true,
                    width:800,
                    'insertorderedlist':{  
                        'decimal' : '' ,         //'1,2,3...'  
                        'lower-alpha' : '' ,    // 'a,b,c...'  
                        'lower-roman' : '' ,    //'i,ii,iii...'  
                        'upper-alpha' : '' ,   
                        'upper-roman' : ''      //'I,II,III...'  
                    },
                    insertunorderedlist : {  
                        // 系统自带  
                        'circle' : '',  // '○ 小圆圈'  
                        'disc' : '',    // '● 小圆点'  
                        'square' : ''   //'■ 小方块'  
                    },
                    'filterTxtRules' : function(){
                    	  function transP(node){
                    	      node.tagName = 'p';
                    	      node.setStyle();
                    	  }
                    	  return {
                    	      // //直接删除及其字节点内容
                    	      // '-' : 'script style object iframe embed input select',
                    	      // 'p': {$:{}},
                    	      // 'br':{$:{}},
                    	      // 'div':{$:{}},
                    	      // 'li':{$:{}},
                    	      // 'caption':{$:{}},
                    	      // 'th':{$:{}},
                    	      // 'tr':{$:{}},
                    	      // 'h1':{$:{}},'h2':{$:{}},'h3':{$:{}},'h4':{$:{}},'h5':{$:{}},'h6':{$:{}},'h7':{$:{}},
                    	      // 'td':function(node){
                    	      //     //没有内容的td直接删掉
                    	      //     var txt = !!node.innerText();
                    	      //     if(txt){
                    	      //         node.parentNode.insertAfter(UE.uNode.createText(' &nbsp; &nbsp;'),node);
                    	      //     }
                    	      //     node.parentNode.removeChild(node,node.innerText())
                    	      // }
                    	  }
                    	}()
                });
    

    可以看到有一个filterTxtRules 配置项就是过滤标签的,现在我们只要将它注释掉我们的表格无边框问题就完美解决了

    接下来在我们的后端配置ueditor-config.js中看一下我们的黑白名单配置

    		 blackList:{style:1, link:1,object:1, input:1, meta:1}, 
    // xss过滤白名单 名单来源: https://raw.githubusercontent.com/leizongmin/js-xss/master/lib/default.js
    		,whitList: {
    			footer: [],
    			h1:     ['class', 'style'],
    			h2:     ['class', 'style'],
    			h3:     ['class', 'style'],
    			h4:     ['class', 'style'],
    			h5:     ['class', 'style'],
    			h6:     ['class', 'style'],
    			span:   ['class', 'style'],
    			table:  ['width', 'border', 'align', 'valign', 'class', 'style'],
    			tbody:  ['align', 'valign', 'class', 'style'],
    			td:     ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'],
    			tfoot:  ['align', 'valign', 'class', 'style'],
    			th:     ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'],
    			thead:  ['align', 'valign', 'class', 'style'],
    			tr:     ['rowspan', 'align', 'valign', 'class', 'style'],
    			tt:     [],
    			u:      [],
    			ul:     ['class', 'style']
    		}
        };
    

    该配置中,blackList黑名单中不允许编辑器中出现style,link等标签,任何外部粘贴进来的数据如果包含这些节点(包括其子节点),都会被编辑器过滤掉。而白名单中的配置则表示允许对应标签中存在对应的属性或者子节点

    文章参看
    样式解决方案1
    样式解决方案2
    黑白名单1
    黑白名单2

    展开全文
  • 选中整个表格,格式 → 边框和底纹 → 边框,设置选择“无”,应用于选择“段落”,每个单元格里面的横线就掉了。
  • 文字上面好像被削了一样 缩小字体,段落——行距——固定值 调整一下就ok,这个就是段落的问题,调整一下行距就好了。 插入表格——在“自动调整”操作中——点上根据内容调整表格就可以了! 附图: -------------...
  • 问题:使用el-table 表格,其有输入框内容,每行的表单内容设置后,不能影响其他行的数据内容; 因为el-table 表格内容编辑的值都是直接从表格的row中取值赋值的 属于浅克隆 所以同一源里的数值也会改变; ...
  • 我从别的文档中复制表格到自己的文档中,表格就自动带上蓝色底色了,试了很多方法,像底纹选无色什么的,都用了 解决方法: 选定表格,执行“格式|显示格式”,在右边窗口找到“表格样式”单击出现“表格自动套用...
  •   例如,假如需要将下图红色圈的GEE代码复制到CSDN博客编辑器中:   得到的结果却是“”样子的方框,如图:   刚开始以为是GEE为了防止代码抄袭所以不允许代码的复制粘贴,也就没当回事;今天偶然发现,...
  • 要点初见:Python+OpenCV校正并提取表格中的各个

    千次阅读 多人点赞 2018-12-12 17:55:53
    最近做了个手写汉字简历识别比赛,需要先提取表格中含有指定信息的各个,再用TensorFlow对中的信息进行汉字、数字、英文识别。代码已开源:https://github.com/BingLiHanShuang/chinese_ocr,需要额外下载训练好...
  • 教大家一个免费复制粘贴百度文库文字的方法 chrome浏览器装个翻译插件就行了,把要复制文字框选出来,点一下翻译,然后设置里面调中文-》中文,在复制就ok了
  • 试用了不少办法,在修改简历时。最后还是都不好使,最后通过表格里面9种对齐方式,让其按照左上角对齐方式对齐,这样就成功地让文字左上角对齐了。之前一直按backspace键,一直没有反应。...
  • 一、强制文字不换行,隐藏多余文字,用省略号代替。 CSS代码:&lt;style type="text/css"&gt; div{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } td{ white-space:nowrap; ...
  • 工作和学习中,我们往往需要删除一大段...将需要处理的文本文件内容全部复制到excel表格,如果要处理的是excel文件则忽略这一步骤。 如图所示,把示例文件全部拷贝excel的A列。2.选中文件所在的列,按Ctrl+F查找,将
  • 最近的项目中有将表格内容导出Excel表格的需求,正好我们使用的是iview框架。在iview中的table组件自带表格导出Excel功能,于是开心的直接使用: html: &amp;lt;Table :columns=&quot;columns&quot...
  • 这几天一直没写博文,但是为了让大山的孩子,能够像京城的富二代一样,可以开开心心公公平平地享受学习excel的权利,因此决定今天继续写,今天主要来谈谈excel图片批量导出,关于excel表格怎么批量导出图片的知识,...
  • Word表格处理技巧

    千次阅读 2009-05-05 05:56:00
    1 文字巧妙转换成表格通常大家制作表格时,都是采用表格和边框工具来绘制表格,或者利用“表格→插入→表格”命令来定制表格,请问如已输入了文字,则有没有办法让文字快速产生表格呢?答:有,可以用Word提供的表格...
  • phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
  • iview使用render函数渲染嵌套表格

    千次阅读 2019-12-10 16:47:07
    最近做项目遇到iview表格渲染,通过render函数来实现循环嵌套渲染表格及单元格内容,返回文字提示包含icon按钮的图标,当鼠标移复制”图标上时显示tooltip内容,单击实现复制,接下来就把遇到的问题总结一下。...
  • HTML表格布局,制作漂亮的表格

    千次阅读 2016-08-18 12:02:00
    最近项目要自己写一个表格布局,所以给大家伙看看.好久没写html代码,都很生疏了,要多练习了.这个是从网上复制来的。 我们做一个简单的网站布局,代码如下: <table align="center" width="500" height="400...
  • 如何将Excel多行单元格文字合并一个单元格中 参考网址:https://jingyan.baidu.com/article/ed15cb1b28042c5ae369819f.html 1.打开需要处理的Excel工作表。 2.选中要合并的单元格,找到剪贴板小三角。 3.打开...
  • excel表格坐标导入cad怎样操作?

    千次阅读 2019-03-27 11:34:34
    2.之后我们打开需要的Excel表格选需要导入的表格内容复制下来。 3.运行CAD编辑器专业版,在软件菜单栏中点击“编辑-选择性粘贴(S)”选项,这时候会弹出【选择性粘贴】弹窗。 4.在【选择性粘贴】弹窗中,我们...
  • 首先phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把classes解压你项目的一个目录中,重名名为phpexcel,...
  • 整体的效果:一、首先百度搜索layui的地址,然后下载layui的压缩包,,将压缩包的文件解压缩,然后将解压缩后的文件复制到你的编译器上;二、建立一个html文件,引入layui.css 和 layui.js两个文件,一定要将地址写...
  • Numbers Mac表格的功能与介绍

    千次阅读 2018-07-06 17:49:22
    用户可以通过它自由地在界面添加表格、图标、文字、图像等内容,使用非常便捷。 Numbers破解版甚至可以使用Numbers 快速制作预算、清单、发票、贷款计算等更多的表格文字、图形、颜色都可以自定义设置。DesiGN ...
  • flex表格样式管理

    千次阅读 2011-11-29 14:58:24
    我之前做的电子表格和高级数据表格中 有这样的要求,用户可能在电子表格中任意的设置单元格样式(背景色,边框……)。如果每个单元格对象都持有自己的CellStyle,那么100*100的单元格矩阵就会创建10000个CellStyle...
  • 先插入一批注,然后复制多列数据,再选取批注按ctrl+v粘贴,然后再复制批注文字粘贴到表格中即可。 (注意:很多同学粘贴批注无效,是因为要点选批注边缘来选取批注,不要让批注进入文字编辑状态。) 技巧2、...
  •  '目录名和excel内表格的名字对应  strs = Split(docPath, "/")  strSheetName = strs(UBound(strs))   End Sub Private Sub Drive1_Change()  Dir1.Path = Drive1.Drive End Sub Private Sub Form_Load...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,084
精华内容 7,233
关键字:

复制文字到表格框内