为Excel导出删除WYSIWYG HTML和CSS标记

时间:2015-10-22 08:51:13

标签: jquery html excel wysiwyg

我有一个使用http://summernote.org/#/的WYSIWYG表单。我在表单中将它用于评论字段。我使用PostgreSQL 9.3作为数据库,并以text数据类型保存评论字段中的数据。

正如您所期望的那样,当您将其保存到数据库时,如果用户更改了文本的格式,如字体样式,大小,换行等,WYSIWYG也会在其上添加HTML和CSS代码,并且还会一起保存在数据库中。然后我现在遇到这个问题,当我在Datatable中呈现这些注释时,注释看起来很好,因为Web会解释其中的HTML和CSS代码。但是当我将内容导出到Excel时,我的数据一片混乱。

Excel不会解释HTML和CSS标记以​​及换行符,从而使我的Excel输出中断。大量的换行和一切。

有没有办法剥离那些HTML和CSS?当我在jQuery中的Datatables中渲染它时,我想这样做,这样当Datatables加载时,HTML和CSS已被剥离,所以我可以轻松导出它,甚至复制粘贴。

$.ajax({
    url: "api/crm/detailedsummary", 
    type: 'GET',
    data: {"from" : $("#fromDateAll").val(), "to" :  $("#toDateAll").val()},
    success: function(result){
    var myObj = $.parseJSON(result);
        $.each(myObj, function(key,value) {
            table.row.add( [
                value.calldatetime, 
                value.phone_num,    
                value.agent,    
                value.gross_disposition,    
                value.net_disposition,  
                value.verified_status,  
                value.passwithchanges_status,   
                value.reject_status,        
                value.verified_by,  
                value.verified_date,    
                value.comments
            ] ).draw();
        });
    }});

value.comments是包含HTML和CSS代码的那个。

1 个答案:

答案 0 :(得分:0)

.replace 可能适用于这种情况:

var comments = '<div id="someId">Hello <span>world!</span></div>';
console.log(comments.replace(/(<([^>]+)>)/ig,""));

正则表达式检查以下内容:

  • < 左标记
  • [^>] 除正确标记外的任何内容
  • + 一次或多次
  • > 右标记