删除 Excel 导出的 WYSIWYG HTML 和 CSS 标签

Remove WYSIWYG HTML and CSS tags for Excel export

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

因此,正如您在将其保存到数据库时所预期的那样,如果用户更改了文本格式,如字体样式、大小、换行符等,所见即所得还将添加 HTML 和 CSS 上面的代码,也会一起保存在数据库中。然后现在我遇到了这个问题,当我在数据表中呈现这些评论时,评论看起来很好,因为网络解释了其中的 HTML 和 CSS 代码。但是当我将内容导出到Excel时,我的数据就乱了。

Excel 不会解释 HTML 和 CSS 标签和换行符,使我的 excel 输出中断。很多换行符等等。

有没有办法去除那些 HTML 和 CSS?我想在 jQuery 中的数据表中渲染它时执行此操作,以便在加载数据表时,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 代码的

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

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

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

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