IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Access vers excel "sans avoir excel installer"


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut Access vers excel "sans avoir excel installer"
    Bonjours

    je cherche a faire l'exportation d'une table access vers excel

    sans avoire forcement excel installer vu que j'ouvre pas forcement le fichier excel


    si quelqu'un peut m'aider merci bcp

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 57
    Par défaut
    Je sais que c'est possible en utilisant le nouveau format openXml d'excel 2007 (ce sont les documents .xlsx).
    Si tu googles OpenXMl et template tu trouveras un tutoriel pas mal sur le site de crosoft.
    Si tu as des problèmes reviens poster par ici, je me suis pas mal pris la tête là dessus et je pourrais peut être t'aider.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    merci de ta reponse
    j'ai lu :
    il est maintenant possible de créer ou de manipuler des documents Office sur un serveur, sans avoir à y installer Office avec le format openxml

    donc c'est bien ce que je recherche le seul souci que j ai pris bcp de temps a ecrire mon programme et je veut pas tout refaire

    voici mon code

    ' Déclaration du fichier Excel à ouvrir
    Dim fichierExcel As Excel.Workbook
    '-----------------------------
    'Dim appExcel As New Excel.Application
    Dim appExcel As New Excel.Application

    ' Pour éviter les questions!!!
    appExcel.AlertBeforeOverwriting = False
    appExcel.DisplayAlerts = False


    c'est a l'appel de New Excel.Application qui plante si j'ai pas excel ya t il moyen de pas tout refaire pour integrer le format openxml

  4. #4
    Membre averti
    Inscrit en
    Août 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 57
    Par défaut
    Là par contre non.
    Le format OpenXml est complètement différent de l'ancien et Microsoft n'a pas encore fait grand chose pour permettre de l'utiliser comme tu souhaites le faire.
    Tu as beaucoup de données à exporter (Nombre de cellules à modifier) ?
    Je peux te donner des pistes pour accélérer les choses.
    Si tu ne veux pas installer excel, j'ai bien peur que ton code soit à jeter...

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    #Region " génération du fichier Excel "
        Public Sub generateExcel(ByRef table As String, ByRef rs As ADODB.Recordset, ByRef appExcel As Excel.Application)
            Try
                'On Error Resume Next
                Dim formExcelProgression As FS_traitementProgession
                Dim col(300) As String
                Dim i As Short
                Dim j As Short
                Dim k As Short
                Dim CurrentPage As Short = 1
     
     
     
     
                ' Récupération du nombre de colonnes
                Dim nbColonnes As Short
                Dim lettre As String
                nbColonnes = rs.Fields.Count
     
                For i = 0 To 25
                    col(i) = Chr(65 + i)
                Next i
                k = 26
                For i = 0 To 7
                    For j = 0 To 25
                        col(k) = Chr(65 + i) & "" & Chr(65 + j)
                        k = k + 1
                        If k > nbColonnes Then
                            Exit For
                        End If
                    Next j
                    If k > nbColonnes Then
                        Exit For
                    End If
                Next i
     
                'préparation de la barre de progression
                formExcelProgression = New FS_traitementProgession
                'Dim nbEnr As Short
                'Dim step_Renamed As Short
                Dim nbEnr As Long
                Dim step_Renamed As Long
                nbEnr = 1
                rs.MoveFirst()
                While Not (rs.EOF)
                    nbEnr = nbEnr + 1
                    rs.MoveNext()
                End While
     
                formExcelProgression.ProgressBar1.Value = 0
                formExcelProgression.ProgressBar1.Max = nbEnr
                step_Renamed = 1
     
                'Attribut de visibilité d'Excel
                FctBase.Pause(1)
                appExcel.Visible = False
                formExcelProgression.Show()
     
     
                formExcelProgression.tick(step_Renamed)
                rs.MoveFirst()
                Dim caseCible As String
     
                While Not (rs.EOF)
                    If i = 0 Then
                        If CurrentPage > appExcel.Worksheets.Count Then
                            appExcel.Worksheets.Add(After:=appExcel.Worksheets(appExcel.Worksheets.Count))
                        End If
                        For i = 0 To (nbColonnes - 1)
                            lettre = col(i)
                            appExcel.Worksheets(CurrentPage).Range(lettre & "1").Value = rs.Fields(i).Name
                        Next i
                        i = 3
                    End If
     
                    For j = 0 To (nbColonnes - 1)
                        If Not IsDBNull(rs.Fields(j).Value) Then
                            caseCible = col(j) & "" & i
                            appExcel.Worksheets(CurrentPage).Range(caseCible).Value = rs.Fields(j).Value
                        End If
                    Next j
                    i = i + 1
                    formExcelProgression.tick(step_Renamed)
                    'Déplacement du curseur
                    rs.MoveNext()
                    If (i = 30000) Then
                        CurrentPage = CurrentPage + 1
                        i = 0
                    End If
                End While
     
                formExcelProgression.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message + " (ModExcel87) ")
                MessageBox.Show(ex.ToString())
                Depart.FormMenuPrincipal.Cursor = Windows.Forms.Cursors.Default
                Exit Sub
            End Try
        End Sub
    #End Region
     
    End Module

    ce code est appelle a la suite de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     
     Try
                Dim rs As New ADODB.Recordset
                Dim fileName As String
                Dim fileNameChem As String
                  Depart.FormMenuPrincipal.Cursor = System.Windows.Forms.Cursors.WaitCursor()
     
                ' Déclaration du fichier Excel à ouvrir
                Dim fichierExcel As Excel.Workbook
                '-----------------------------
                'Dim appExcel As New Excel.Application
                Dim appExcel As New Excel.Application
     
                ' Pour éviter les questions!!!
                appExcel.AlertBeforeOverwriting = False
                appExcel.DisplayAlerts = False
     
                'on exporte TOUTE la table  dans un fichier xls
     
                ' Ouverture du fichier Excel
     
     
                fileName = Depart.cheminBD & "\rep\" & TPeriode.Text & TAnnee.Text & ".xls"
     
     
                fichierExcel = appExcel.Workbooks.Add
                Depart.connecterBD()
                rs.Open("SELECT * FROM imp_prov", _
                    Depart.ConnectionBd, ADOR.CursorTypeEnum.adOpenForwardOnly, ADOR.LockTypeEnum.adLockReadOnly)
     
                ' remplissage du fichier excel
                If Not (rs.EOF And rs.BOF) Then
                    ' Ecriture des en-têtes de colonnes et des valeur
                    ModExcel.generateExcel("table_temp", rs, appExcel)
                End If
                rs.Close()
                fichierExcel.SaveAs(fileName)

  6. #6
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Il n'y a pas besoin d'avoir Excel installé sur le poste pour pouvoir générer des fichiers Excel par programmation. Il faut et il suffit de référencer les bibliothèques Office Excel dans son projet pour que le code que tu a écris, psyko72, soit interprété.

    On me corrigera si je me trompe, mais le format OpenXml n'est pas lisible par les versions d'Excel antérieures à la version 2003.

    Pour une compatibilité ascendante, il vaut mieux partir d'une vieille version d'Excel (2000 me semble un bon compromis) pour que les fichiers générés aient plus de chance d'être lisibles sur une machine quelconque.
    Voici deux liens pour t'aider, psyko72 :
    http://dotnet.developpez.com/cours/office/
    http://skalp.developpez.com/tutoriel...tomationexcel/

  7. #7
    Membre averti
    Inscrit en
    Août 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 57
    Par défaut
    Au temps pour moi

  8. #8
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Citation Envoyé par Skalp Voir le message
    On me corrigera si je me trompe, mais le format OpenXml n'est pas lisible par les versions d'Excel antérieures à la version 2003.
    je corrige.
    OpenXML n'est lisible que par Office 2007.
    Pour les versions antérieures (2003, XP et 2000) il existe un pack de compatibilité :
    http://www.microsoft.com/downloads/d...3-c6bb74cd1466
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lire un fichier excel sans avoir excel installé
    Par royersebastien dans le forum VBA Word
    Réponses: 6
    Dernier message: 07/10/2009, 11h26
  2. Réponses: 6
    Dernier message: 27/10/2008, 11h56
  3. Executer fichier .jar sans avoir jvm installé
    Par fafoula dans le forum Général Java
    Réponses: 2
    Dernier message: 17/09/2008, 13h23
  4. [.xls] Comment créer ce type de fichier sans avoir Excel ?
    Par fredppp dans le forum Framework .NET
    Réponses: 1
    Dernier message: 05/09/2008, 12h29
  5. Lire un fichier Excel (sans avoir Excel installé)
    Par Adaemon dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/05/2007, 20h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo