Supprimer de la colonne lors de l’exportation XLS

JQuery DataTable ( https://www.datatables.net/ ) fonctionne avec le plug-in TableTools avec des éléments dans chaque ligne d’une des colonnes.

En cliquant sur le bouton d’exportation, je souhaite masquer / supprimer les éléments du fichier exporté. Ne supprimez pas toutes les colonnes, mais seulement les éléments de cette colonne.

Comment puis-je atteindre cet objective? Je comprends comment supprimer une colonne entière de l’exportation, mais je n’ai pas trouvé de moyen de supprimer des éléments particuliers de l’exportation.

Merci

MIS À JOUR

  "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 en place, je ne sais pas quel est le meilleur moyen de supprimer les éléments .

Vous devez utiliser l’option fnCellRender d’un bouton, à partir de la documentation:

Utilisé pour modifier les données lues à partir de la table via la méthode API fnGetTableData (utilisée pour l’exportation de données). Cela permet de pré-traiter les données avant de les exporter, par exemple en supprimant certaines parties du code HTML ou en postfixant d’autres données.

Lisez toutes les options ici . Lisez également l’option aButtons à l’initialisation ici . L’idée est de définir les boutons que TableTools utilisera et dans la définition du bouton, utilisez l’option sExtends pour étendre un bouton TableTools à Behaivor.

Voici un exemple:

 $(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; } } ] } } ); } ); 

Lisez les commentaires de l’exemple, ajustez-le à vos besoins, n’hésitez pas à commenter.

EDIT: lisez tout cet article et utilisez l’option qui s’adapte davantage à vos besoins
Comment enlever les balises HTML avec jQuery?
Jquery: Supprime toutes les balises HTML spécifques de la chaîne
Supprimer tous les balises HTML dans une chaîne (avec la fonction jquery text ())
JavaScript: Comment enlever les balises HTML d’une chaîne?

Dans mes tests, la dernière version de TableTools supprime déjà les balises HTML dans un fichier CSV. Voir cet exemple .

Pour que cela fonctionne, vous devez supprimer fnCellRender . Apparemment, si fnCellRender est présent, TableTools ne supprime pas le code HTML par défaut.

De même, bien que DataTables tente de déterminer automatiquement le type de données de la colonne, vous pouvez envisager de définir ce type de colonne sur html pour la recherche et le filtrage.

Du manuel:

Lorsqu’il fonctionne en mode de traitement côté client, DataTables peut traiter les données utilisées pour l’affichage dans chaque cellule dans un manuel adapté à l’action exécutée. Par exemple, les balises HTML seront supprimées des chaînes utilisées pour la correspondance de filtre , tandis que le formatage de sorting peut supprimer les symboles monétaires pour permettre le sorting numérique des valeurs monétaires.

DataTables a un certain nombre de types intégrés qui sont automatiquement détectés :

html – Traitement de base des chaînes pour les balises HTML

  • Tri – Trié sans les balises HTML
  • Filtrage – Suppression des balises HTML de la chaîne de filtrage