Javascript 删除<;span>;从XLS导出上的列

Javascript 删除<;span>;从XLS导出上的列,javascript,jquery,datatables,tabletools,Javascript,Jquery,Datatables,Tabletools,我有一个工作的jQuery DataTable(),它使用TableTools插件,在每一列的每一行中都有元素 单击导出按钮后,我想从导出的文件中隐藏/删除元素。不删除整个列,只删除该列中的元素 我怎样才能做到这一点?我知道如何从导出中删除整个列,但还没有找到从导出中删除特定元素的方法 谢谢 已更新 "oTableTools": { "sSwfPath": "/public/swf/copy_csv_xls_pdf.swf", "aButtons": [

我有一个工作的jQuery DataTable(),它使用TableTools插件,在每一列的每一行中都有
元素

单击导出按钮后,我想从导出的文件中隐藏/删除
元素。不删除整个列,只删除该列中的
元素

我怎样才能做到这一点?我知道如何从导出中删除整个列,但还没有找到从导出中删除特定元素的方法

谢谢

已更新

    "oTableTools": {
        "sSwfPath": "/public/swf/copy_csv_xls_pdf.swf",
        "aButtons": [
            {
                "sExtends": "print",
            },
            {
                "sExtends": "copy",
            },
            {
                "sExtends": "csv",                   
                "fnCellRender": function ( sValue, iColumn, nTr, iDataIndex ) {
                    return sValue;
                 }               
            }
        ]
      }

我已经准备好了
fnCellRender
,我只是不确定去除
元素的最佳方法。

您需要使用按钮的
fnCellRender
选项,从文档:

用于修改通过FGetTableData API方法(用于导出数据)从表中读取的数据。这允许在导出数据之前对数据进行预处理,例如剥离HTML的某些部分或对其他数据进行后期修复

阅读所有选项。在初始化时也要阅读
附件
选项。其思想是定义
TableTools
将使用的按钮,并在按钮定义中使用
sExtends
选项来扩展
TableTools
按钮行为

以下是一个例子:

$(document).ready( function () {
    $('#example').dataTable( {
        "dom": 'T<"clear">lfrtip',
        "tableTools": {
            "sSwfPath": "TableTools_files/copy_csv_xls_pdf.swf",
            "aButtons": [
                {
                    "sExtends":    "csv", //extend the default csv
                    "fnCellRender": function ( sValue, iColumn, nTr, iDataIndex ) {
                        if ( iColumn === 5 ) {
                            //feel free to modify the value here
                            return sValue +" TableTools";
                        }
                        return sValue;
                    }
                }
            ]
        }
    } );
} );
$(文档).ready(函数(){
$('#示例')。数据表({
“dom”:“Tlfrtip”,
“表格工具”:{
“sSwfPath”:“TableTools\u files/copy\u csv\u xls\u pdf.swf”,
“阿布顿”:[
{
“sExtends”:“csv”//扩展默认的csv
“fnCellRender”:函数(sValue、iColumn、nTr、iDataIndex){
如果(iColumn==5){
//请随意修改此处的值
返回sValue+“TableTools”;
}
返回值;
}
}
]
}
} );
} );
阅读示例中的注释,根据您的需要进行调整,随时发表评论

编辑: 阅读所有这篇文章,使用更适合您需要的选项




在我的测试中,最新的TableTools已经在CSV文件中剥离HTML标记。看

要使其正常工作,您需要删除
fnCellRender
。显然,如果存在
fnCellRender
,默认情况下TableTools不会执行HTML剥离

此外,尽管数据集可以自动确定列数据类型,但您可能需要考虑将其设置为<代码> HTML>代码>进行搜索和筛选。 从手册中:

在客户端处理模式下操作时,DataTables可以处理 适用于以下情况的手册中每个单元格中显示的数据: 正在执行的动作。例如,HTML标记将被删除 来自用于筛选匹配的字符串,而排序格式可能 删除货币符号以允许对货币值进行排序 数字上

DataTables有许多内置类型,这些类型自动 检测到

html
-html标记的基本字符串处理

  • 排序-在删除HTML标记的情况下进行排序
  • 筛选-从筛选字符串中删除HTML标记

谢谢你的回答。我已经更新了我的问题,加入了我的“oTableTools”代码。我不知道如何从字符串中剥离
元素在我的测试中,最新的TableTools已经在CSV文件中剥离HTML标记。您使用的是什么版本的DataTables和TableTools?@Gyrocode.com我已经用
TableTools 2.2.4
对其进行了测试,但没有。@Kstro21,请参见下面的答案和示例。为了让TableTools在默认情况下剥离HTML标记,必须删除
fnCellRender
。这些答案是否有助于解决您的问题?还有问题吗?你说得对,如果我删除
fnCellRender
它就可以工作了@585connor应该升级您的
TableTools
版本或使用我的答案。@Kstro21,您的答案也是正确的,因为根据文档
fnCellRender
可以用来剥离HTML的某些部分,这给了用户更多的控制权。我更新到了TableTools的最新稳定版本,并删除了fnCellRender。它剥离标签,但保留其内容。我想完全删除
元素。@585connor,那么您肯定需要按照@Kstro21的建议使用
fnCellRender
。你能更新你的问题,发布一个样本单元格内容并解释你想删除的部分吗?