Supprimer/Modifier colonne dans l'export excel

Version : 5.2.42

Dans le contexte de notre projet, nous sommes confrontés à la tâche d’exporter un Business Object sous la forme d’un fichier CSV. Cependant, avant de procéder à cette exportation, nous devons apporter quelques ajustements spécifiques.

Premièrement, il est nécessaire que nous supprimions certaines colonnes du fichier CSV. Pour accomplir cela, nous avons exploré l’utilisation de la fonction “PreExport”, mais nous n’avons pas pu accéder à une documentation détaillée sur son fonctionnement.

Deuxièmement, notre besoin implique de mettre à jour exclusivement le libellé de la colonne dans le contexte de nos lignes de données. Nous avons tenté d’utiliser la fonction “postExport(List<String> rows)”, cependant, nous avons constaté qu’elle nous fournit uniquement les lignes de données sans inclure l’en-tête.

Voici un exemple de ce que nous envisageons :

Avant ajustements :

Colonne A Colonne B Colonne C
Donnée A Donnée B Donnée C
Donnée X Donnée Y Donnée Z

Après ajustements :

Colonne AA Colonne C
Donnée A Donnée C
Donnée X Donnée Z

Nous serions reconnaissants si vous pouviez nous guider sur la façon de gérer ces ajustements de manière efficace, notamment en ce qui concerne l’utilisation des fonctions “PreExport” et “postExport”.

Bonjour,

Sur les hooks pre/postExport, ils permettent de modifier le contenu :

  • preExport : permet généralement de modifier les filtres avant recherche
  • postExport : permet de rajouter/retirer des lignes ou de valoriser des champs calculés (sans colonne physique) après le select en base (qui passera dans le preSearch/search/postSearch de l’objet)

Ce n’est donc pas adapté à modifier la définition de l’objet, on le fait en général une fois dans le postLoad :

if (isExportInstance()) {
  getField("x").setLabel("Colonne AA");
  getField("y").setVisibility(ObjectField.VIS_HIDDEN);
}

Sinon il y a d’autres approches :

  • Il existe aussi une propriété “exportable” sur le champ en plus de la visibilité (de mémoire pour excel/pdf, à voir si elle est prise en compte dans un export CSV sinon on l’ajoutera)
  • il est aussi possible de définir des recherches prédéfinies avec des préférences de colonnes visibles, et l’appliquer sur la liste et dans l’export (un bug vient d’être corrigé et sera livré prochainement), ça permet d’avoir N templates d’export et c’est l’utilisateur qui applique celui qu’il souhaite
  • ou de créer une publication sur mesure si la structure change complètement
1 Like

PS : la propriété “exportable” d’un attribut sera prise en compte dans l’export CSV dans la prochaine révision, à date elle n’est utilisée que dans Json, XML, Excel et PDF.

field.isExportable()
field.setExportable(false)

1 Like

Re Bonjour,
Je vous remercie pour les détails et les informations que vous avez partagés. J’aurais une question à ce sujet : il semblerait que la méthode isExportObject() ne soit pas répertoriée dans la documentation. Est-ce qu’elle fait partie des fonctionnalités prises en charge par Simplicité ?

Désolé c’est isExportInstance()

comme isMainInstance (liste principale), isPanelInstance (liste fille en panel), isRefInstance (popup de sélection de référence)…

pour connaitre le nom logique d’une instance unique en mémoire de la session utilisateur :

getInstanceName() = export_<objectname> dans le cas d’un export
isExportInstance() = teste que le nom commence par “export_”

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.