Exporter le contenu d'une listview dans un fichier excel (sans ocx ou dll)

Contenu du snippet

Tout est dans le titre donc pas plus de chose à dire si ce n'est que bien evidemment cette exportation ne tient pas compte de la mise en page c'est à vous de la faire sous Excel (il faut bien l'utiliser quand même :-))

J'ai mis ça dans une sub c'est plus sympa pour s'en re-servir aprés.

Source / Exemple :


Public Sub Export_XLS(Liste As ListView, Filename As String)
                
Dim X As Integer, Y As Integer
Dim Tempo As String

' Création du fichier Excel
Open Filename For Output As #2
             
    With Liste
    
        ' Récupère le nom des colonnes
        For X = 1 To .ColumnHeaders.Count
            Tempo = Tempo & CStr(.ColumnHeaders(X).Text) & Chr$(9)
        Next X
        
        ' Ecriture des données des colonnes
        Print #2, Tempo
        
        ' Ecriture d'une ligne vide (pas obligatoire)
        Print #2, Chr$(32)

        ' Variable à zéro pour la suite
        Tempo = ""

        ' Lecture ligne par ligne de la liste
        For X = 1 To .ListItems.Count
            
            ' Récupère le 1er Item de la ligne X
            Tempo = CStr(.ListItems(X)) & Chr$(9)
            
            ' Récupère les SubItems de X sur la même ligne
            For Y = 1 To .ColumnHeaders.Count - 1
                Tempo = Tempo & CStr(.ListItems(X).SubItems(Y)) & Chr$(9)
            Next Y
            
            ' Ecriture des données
            Print #2, Tempo
            
            ' Efface la variable
            Tempo = ""
            
        Next X
        
    End With
    
Close #2

End Sub

Conclusion :


Le chr$(9) c'est pour la tabulation si vous l'oubliez vous aurez toutes les infos dans une seule et unique colonne.

J'ai testé ça sous Excel 2000 et ça marche ya aucun problème, ce serai bien de vérifier pour les autres versions quitte même à en modifier le code de façon à le rendre compatible pour les autres versions mais je ne pense pas que ce soit nécessaire.

Bonne prog à tous ^_^
@plus

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.