Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试在导出期间从数据表中剥离html_Javascript_Datatable_Export To Excel - Fatal编程技术网

Javascript 尝试在导出期间从数据表中剥离html

Javascript 尝试在导出期间从数据表中剥离html,javascript,datatable,export-to-excel,Javascript,Datatable,Export To Excel,我使用的数据表正是这个例子。因此,为了导出数据,我使用了一个函数,该函数允许我在excel中使用换行符更改。 我用了这个: return column === 5 ? data.replace( /<br\s*\/?>/ig, "\n"): data; 返回列===5?data.replace(//ig,“\n”):数据; 然而,当我尝试添加第二个我想对不同列进行的更改时,它不起作用。。。我尝试在第一个工作替换的正下方添加以下内容: return column === 1 ? d

我使用的数据表正是这个例子。因此,为了导出数据,我使用了一个函数,该函数允许我在excel中使用换行符更改

。 我用了这个:

return column === 5 ? data.replace( /<br\s*\/?>/ig, "\n"): data;
返回列===5?data.replace(//ig,“\n”):数据;
然而,当我尝试添加第二个我想对不同列进行的更改时,它不起作用。。。我尝试在第一个工作替换的正下方添加以下内容:

return column === 1 ? data.replace( /<.*?>/ig, ""): data;
返回列===1?data.replace(//ig,“”):数据;
首先将

更改为换行符后,我想基本上去掉所有html标记。但正如我现在的代码一样,第二部分在导出过程中被忽略…有人知道我做错了什么吗

这是我的全部代码:

var fixNewLine = {
    exportOptions: {
        format: {
            body: function ( data, column, row ) {
                return column === 5 ? data.replace( /<br\s*\/?>/ig, "\n"): data;
                return column === 1 ? data.replace( /<.*?>/ig, ""): data;
            }
        }
    }
};

var t2e = $('#table2excel').DataTable({
    dom: 'Bfrtip',
        buttons:[
            $.extend( true, {}, fixNewLine, {
                extend: 'excelHtml5'
            } ),
            'pdf', 'print', 'copy', 'csv' //, 'excel'
        ]

});
var fixNewLine={
出口选择:{
格式:{
正文:函数(数据、列、行){
返回列===5?数据。替换(//ig,“\n”):数据;
返回列===1?数据。替换(//ig,“”):数据;
}
}
}
};
变量t2e=$('#table2excel')。数据表({
dom:'Bfrtip',
按钮:[
$.extend(true,{},fixNewLine{
扩展:“excelHtml5”
} ),
“pdf”、“打印”、“复制”、“csv”/、“excel”
]
});

代码中不能有多个返回语句,只能执行第一个返回语句,请尝试以下操作:

var fixNewLine = {
    exportOptions: {
        format: {
            body: function ( data, column, row ) {
                if (column === 5) {
                    data = data.replace(/<br\s*\/?>/ig, "\n");
                }
                return column === 1 ? data.replace(/<.*?>/ig, ""): data;
            }
        }
    }
};
var fixNewLine={
出口选择:{
格式:{
正文:函数(数据、列、行){
如果(列==5){
data=data.replace(//ig,“\n”);
}
返回列===1?数据。替换(//ig,“”):数据;
}
}
}
};

单独处理每一列的switch语句对我来说非常有效。请参阅下面我的用法

var fixNewLine = { 
    exportOptions: { 
        format: { 
            body: function ( data, row, column, node ) { 
                 switch(column){
                    case 1 :  return column === 1 ? data.replace(/<.*?>/ig, "") : data; break;
                    case 2 :  return column === 2 ? data.replace(/<.*?>/ig, "") : data; break;
                    case 3 :  return column === 3 ? data.replace(/<.*?>/ig, "") : data; break;
                    case 4 :  return column === 4 ? data.replace(/<.*?>/ig, "") : data; break;
                    case 5 :  return column === 5 ? data.replace(/<.*?>/ig, "") : data; break;
                    case 6 :  return column === 6 ? data.replace(/<.*?>/ig, "") : data; break; 
                    default : return data; break;
                }
            } 
        } 
    }
};  
var fixNewLine={
导出选项:{
格式:{
正文:函数(数据、行、列、节点){
开关(列){
案例1:返回列===1?数据。替换(//ig,“”):数据;中断;
案例2:返回列===2?数据。替换(//ig,“”):数据;中断;
案例3:返回列===3?数据。替换(//ig,“”):数据;中断;
案例4:返回列===4?数据。替换(//ig,“”):数据;中断;
案例5:返回列===5?数据。替换(//ig,“”):数据;中断;
案例6:返回列===6?数据。替换(//ig,“”):数据;中断;
默认值:返回数据;中断;
}
} 
} 
}
};  

Wow-man谢谢!这起作用了。但现在我尝试对我的所有列执行此操作:首先使用换行符更改

,然后删除剩余的html。所以我在body函数中尝试了这个方法:
data=data.replace(//ig,“\n”);data=data.replace(//ig,“”);返回数据但它没有正确保存换行符。。。您知道有什么解决方法吗?在最后一个
default
案例中的return语句之后,您不需要
break
。)你在做一些奇怪的事。。。当您有一个
开关
时,
案例1
将始终是
列===1
,因此您不需要进行额外检查。您可以用
return(column>0&&column<7):data.replace(//ig,“”)重写整个case语句?数据