移除& lt; span>从关于XLS导出的专栏中

Remove <span> from column on XLS export

本文关键字:XLS span lt 移除      更新时间:2023-09-26

我有一个工作的jQuery DataTable (https://www.datatables.net/)使用TableTools插件与<span>元素在每一行的列之一。

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

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

感谢

    "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到位,我只是不确定什么是最好的方法是剥离<span>元素。

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

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

阅读这里的所有选项。在初始化时也可以阅读aButtons选项。这个想法是定义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;
                    }
                }
            ]
        }
    } );
} );

阅读示例中的注释,根据您的需要进行调整,随时发表评论。

编辑:

阅读所有这些文章,并使用更多的选项来调整你的需要
如何剥离HTML标签与jQuery?
Jquery:从字符串
中剥离所有特定的HTML标签删除字符串中的所有html标签(使用jquery text()函数)
如何从字符串中剥离HTML标签?

在我的测试中,最新的TableTools已经剥离了CSV文件中的HTML标签。请看这个例子。

为了这个工作,你需要删除fnCellRender。显然,如果fnCellRender存在,TableTools默认不做HTML剥离。

另外,尽管datattables试图自动确定列的数据类型,但您可能需要考虑将该列类型设置为html以进行搜索和过滤。

从手册:

在客户端处理模式下运行时,datatable可以处理所使用的数据在每个单元格中显示适合于使用说明书正在执行的操作。例如,HTML标记将被删除从用于过滤器匹配的字符串中提取,而排序格式可以删除货币符号以允许对货币值进行排序数值。

datatable有许多内建的类型,这些类型自动地检测到:

html - HTML标签的基本字符串处理

  • 排序-删除HTML标签后排序
  • 过滤-从过滤字符串
  • 中删除HTML标签