begin process at 2012 05 27 06:54:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers/Disque

 > IMPORTER UN FICHIER EXCEL DEPUIS UN POSTE ET L'AJOUTER SUR LA BD DU SERVEUR

IMPORTER UN FICHIER EXCEL DEPUIS UN POSTE ET L'AJOUTER SUR LA BD DU SERVEUR


 Information sur la source

Note :
Aucune note
Catégorie :Fichiers/Disque Source .NET ( DotNet ) Classé sous :Excel, Ole Db, access, upload, sql Niveau :Débutant Date de création :17/01/2008 Date de mise à jour :17/01/2008 04:42:43 Vu :20 100

Auteur : jseblavoie

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Bon ben comme le titre le dit... ;)
Je voulais pas enregistrer le fichier excel sur le serveur car je voulais juste en extraire les données mais j'ai comme pas eu le choix car j'ai pas trouvé comment... Si qqu saurait comment s'y prendre bien vouloir m'en faire part ;)

Source

  • <%@ Import Namespace="System.IO" %>
  • <%@ Import Namespace="System.Data.OleDb" %>
  • <script runat="server">
  • Sub Upload_Click(ByVal Sender As Object, ByVal e As EventArgs)
  • 'Le nom du fichier
  • FileName.InnerHtml = MonFichier.PostedFile.FileName
  • Dim strFileName As String = MonFichier.PostedFile.FileName
  • 'Ceci est le span où j'affiche les messages
  • Span1.InnerHtml = ""
  • Try
  • 'On vérifie s'il envoi vraiment un fichier et si c'est un fichier excel.
  • If (Len(strFileName) = 0) Then
  • Throw New Exception("Spécifier un fichier.")
  • ElseIf (Right(LCase(strFileName), 4) <> ".xls") Then
  • Throw New Exception("Ce n'est pas un fichier excel.")
  • End If
  • Try
  • 'On essai d'enregistrer le fichier dans le dossier \fichierstemp temporairement
  • MonFichier.PostedFile.SaveAs(Server.MapPath("./fichierstemp") & "\" & MonFichier.PostedFile.FileName)
  • Span1.InnerHtml = Span1.InnerHtml & "Le fichier a été téléchargé avec succès.<br>"
  • Catch Exp As Exception
  • Span1.InnerHtml = Span1.InnerHtml & "Impossible de télécharger le fichier.<br>"
  • End Try
  • ' Création de la connexion Ole DB sur mon fichier excel
  • Dim strConn As String = "Provider=Microsoft.Jet.OleDb.4.0;" _
  • & "data source=" & Server.MapPath("./fichierstemp") & "\" & MonFichier.PostedFile.FileName & ";" _
  • & "Extended Properties=Excel 8.0;"
  • Dim objConn As New OleDbConnection(strConn)
  • 'Ma requete où traduction étant la région où se trouvent mes cellules
  • Dim strSql As String = "SELECT * FROM traduction"
  • Dim objCmd As New OleDbCommand(strSql, objConn)
  • ' Création de la connexion Ole DB sur ma BD
  • Dim strConn2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
  • & "Data Source=" & Server.MapPath("..\BD\glossaire.mdb")
  • Dim objConn2 As New OleDbConnection(strConn2)
  • Dim objCmd2 As New OleDbCommand
  • 'Va contenir les résultats de ma requete
  • Dim sourceReader As OleDbDataReader
  • Try
  • 'Ouvre la connexion et exécute la requête
  • objConn.Open()
  • sourceReader = objCmd.ExecuteReader()
  • Try
  • 'tente d'ouvrir la BD
  • objConn2.Open()
  • Catch ex As Exception
  • Span1.InnerHtml = Span1.InnerHtml & "Impossible d'ouvrire la BD.<br>"
  • End Try
  • Try
  • 'Lit le résultat de ma requete sur le fichier excel et l'insère dans ma BD
  • While sourceReader.Read()
  • 'bon ici un peu de niaisage pour faire ma requete...
  • Dim strSql2 As String = "INSERT INTO glossaire1 (Anglais, Francais, Source) VALUES ("
  • Dim col1, col2, col3 As String
  • If Not IsDBNull(sourceReader.Item(0)) Then
  • col1 = "'" & Replace(sourceReader.Item(0), "'", "''") & "'"
  • Else
  • col1 = "null"
  • End If
  • If Not IsDBNull(sourceReader.Item(1)) Then
  • col2 = "'" & Replace(sourceReader.Item(1), "'", "''") & "'"
  • Else
  • col2 = "null"
  • End If
  • If Not IsDBNull(sourceReader.Item(2)) Then
  • col3 = "'" & Replace(sourceReader.Item(2), "'", "''") & "'"
  • Else
  • col3 = "null"
  • End If
  • strSql2 = strSql2 & col1 & "," & col2 & "," & col3 & ")"
  • objCmd2 = New OleDbCommand(strSql2, objConn2)
  • Try
  • 'On essai d'insérer la ligne dans ma BD
  • objCmd2.ExecuteNonQuery()
  • Catch ex As Exception
  • Span1.InnerHtml = Span1.InnerHtml & "Impossible d'ajouter dans la BD.<br>"
  • End Try
  • End While
  • Catch ex As Exception
  • Span1.InnerHtml = Span1.InnerHtml & "Impossible de créer la requête.<br>"
  • End Try
  • Catch ex As Exception
  • Span1.InnerHtml = Span1.InnerHtml & "Impossible d'ouvrir le fichier excel.<br>"
  • Finally
  • 'Ferme les connexions
  • objConn.Dispose()
  • objConn2.Dispose()
  • End Try
  • Try
  • 'On tente de supprimer le fichier
  • Dim deletefichier As New FileInfo(Server.MapPath("./fichierstemp") & "\" & MonFichier.PostedFile.FileName)
  • deletefichier.Delete()
  • Span1.InnerHtml = Span1.InnerHtml & "Fichier supprimé.<br>"
  • Catch ex As Exception
  • Span1.InnerHtml = Span1.InnerHtml & "Impossible de supprimer le fichier.<br>"
  • End Try
  • Catch ex As Exception
  • Span1.InnerHtml = ex.Message
  • End Try
  • End Sub
  • </script>
  • <html>
  • <head><title>Insérer un fichier excel dans une BD.</title>
  • </head>
  • <body>
  • <form runat="server" EncType="Multipart/Form-Data" RunAt="Server">
  • <!-- Insert content here -->
  • Choisir le Fichier :
  • <asp:FileUpload ID="MonFichier" RunAt="Server"></asp:FileUpload>
  • <asp:Button ID="UploadButton" Text="Upload" OnClick="Upload_Click" RunAt="Server"></asp:Button>
  • <br />
  • <span ID="FileName" RunAt="Server" /><br />
  • <span ID="Span1" RunAt="Server" /><br />
  • </form>
  • </body>
  • </html>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script runat="server">

    Sub Upload_Click(ByVal Sender As Object, ByVal e As EventArgs)

        'Le nom du fichier
        FileName.InnerHtml = MonFichier.PostedFile.FileName
        Dim strFileName As String = MonFichier.PostedFile.FileName
        'Ceci est le span où j'affiche les messages
        Span1.InnerHtml = ""
        
        Try
            'On vérifie s'il envoi vraiment un fichier et si c'est un fichier excel.
            If (Len(strFileName) = 0) Then
                Throw New Exception("Spécifier un fichier.")
            ElseIf (Right(LCase(strFileName), 4) <> ".xls") Then
                Throw New Exception("Ce n'est pas un fichier excel.")
            End If

            Try
                'On essai d'enregistrer le fichier dans le dossier \fichierstemp temporairement
                MonFichier.PostedFile.SaveAs(Server.MapPath("./fichierstemp") & "\" & MonFichier.PostedFile.FileName)
                Span1.InnerHtml = Span1.InnerHtml & "Le fichier a été téléchargé avec succès.<br>"
            Catch Exp As Exception
                Span1.InnerHtml = Span1.InnerHtml & "Impossible de télécharger le fichier.<br>"
            End Try

            ' Création de la connexion Ole DB sur mon fichier excel
            Dim strConn As String = "Provider=Microsoft.Jet.OleDb.4.0;" _
                                  & "data source=" & Server.MapPath("./fichierstemp") & "\" & MonFichier.PostedFile.FileName & ";" _
                                  & "Extended Properties=Excel 8.0;"
        
            Dim objConn As New OleDbConnection(strConn)
            'Ma requete où traduction étant la région où se trouvent mes cellules
            Dim strSql As String = "SELECT * FROM traduction"
            Dim objCmd As New OleDbCommand(strSql, objConn)
        
            ' Création de la connexion Ole DB sur ma BD
            Dim strConn2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                                  & "Data Source=" & Server.MapPath("..\BD\glossaire.mdb")
            Dim objConn2 As New OleDbConnection(strConn2)
            Dim objCmd2 As New OleDbCommand
        
            'Va contenir les résultats de ma requete
            Dim sourceReader As OleDbDataReader
        
            Try
                'Ouvre la connexion et exécute la requête
                objConn.Open()
                sourceReader = objCmd.ExecuteReader()
            
                Try
                    'tente d'ouvrir la BD
                    objConn2.Open()
                Catch ex As Exception
                    Span1.InnerHtml = Span1.InnerHtml & "Impossible d'ouvrire la BD.<br>"
                End Try
            
                Try
                    'Lit le résultat de ma requete sur le fichier excel et l'insère dans ma BD
                    While sourceReader.Read()
                        'bon ici un peu de niaisage pour faire ma requete...
                        Dim strSql2 As String = "INSERT INTO glossaire1 (Anglais, Francais, Source) VALUES ("
                        Dim col1, col2, col3 As String
                        If Not IsDBNull(sourceReader.Item(0)) Then
                            col1 = "'" & Replace(sourceReader.Item(0), "'", "''") & "'"
                        Else
                            col1 = "null"
                        End If
                        If Not IsDBNull(sourceReader.Item(1)) Then
                            col2 = "'" & Replace(sourceReader.Item(1), "'", "''") & "'"
                        Else
                            col2 = "null"
                        End If
                        If Not IsDBNull(sourceReader.Item(2)) Then
                            col3 = "'" & Replace(sourceReader.Item(2), "'", "''") & "'"
                        Else
                            col3 = "null"
                        End If
                        strSql2 = strSql2 & col1 & "," & col2 & "," & col3 & ")"
            
                        objCmd2 = New OleDbCommand(strSql2, objConn2)
                
                        Try
                            'On essai d'insérer la ligne dans ma BD
                            objCmd2.ExecuteNonQuery()
                        Catch ex As Exception
                            Span1.InnerHtml = Span1.InnerHtml & "Impossible d'ajouter dans la BD.<br>"
                        End Try
                
                    End While
                
                Catch ex As Exception
                    Span1.InnerHtml = Span1.InnerHtml & "Impossible de créer la requête.<br>"
                End Try
            
            Catch ex As Exception
                Span1.InnerHtml = Span1.InnerHtml & "Impossible d'ouvrir le fichier excel.<br>"
            Finally
                'Ferme les connexions
                objConn.Dispose()
                objConn2.Dispose()
            End Try
        

            Try
                'On tente de supprimer le fichier
                Dim deletefichier As New FileInfo(Server.MapPath("./fichierstemp") & "\" & MonFichier.PostedFile.FileName)
                deletefichier.Delete()
                Span1.InnerHtml = Span1.InnerHtml & "Fichier supprimé.<br>"
            Catch ex As Exception
                Span1.InnerHtml = Span1.InnerHtml & "Impossible de supprimer le fichier.<br>"
            End Try
        
        Catch ex As Exception
            Span1.InnerHtml = ex.Message
        End Try

    End Sub
    
</script>

<html>
<head><title>Insérer un fichier excel dans une BD.</title>
</head>
<body>
    <form runat="server" EncType="Multipart/Form-Data" RunAt="Server">
        <!-- Insert content here -->
        Choisir le Fichier :
        <asp:FileUpload ID="MonFichier" RunAt="Server"></asp:FileUpload>
        <asp:Button ID="UploadButton" Text="Upload" OnClick="Upload_Click" RunAt="Server"></asp:Button>

        <br />

        <span ID="FileName" RunAt="Server" /><br />
        <span ID="Span1" RunAt="Server" /><br />

    </form>
              
</body>
</html>

 Conclusion

Bon je suis pas un guru de l'asp .net donc si vous avez des suggestions de meilleurs codes n'hésiter pas à m'en faire part! :)


 Sources de la même categorie

SERVER.MAPPATH QUI ACCEPTE LES ../ par divlys
UPLOAD D'IMAGES VIA ADODB.STREAM ET SQL SERVER par Nicolas_kojack
LISTING DE FICHIERS ET RÉPERTOIRES (FONCTION RÉCURSIVE) par Warwick
Source avec Zip UTILITAIRE POUR FORCER LE TÉLÉCHARGEMENT D'UN FICHIER SUR UN... par shaiulud
Source .NET (Dotnet) .NET - CLASSE DE LOG D'EVÈNEMENT par fabrice69

 Sources en rapport avec celle ci

Source avec Zip UN MODULE POUR APPRENDRE SQL par Elmarzougui
Source avec Zip Source .NET (Dotnet) EXPORT DES DONNÉES SQL SERVER 2000 VERS ACCESS : UTILISATION... par arcollet
Source .NET (Dotnet) REMPLIR UN DATAGRID AVEC UN DATASET ! par fatalbert
Source avec une capture ASP - VOIR TABLES SUR BD ACCESS, SQL, ORACLE par rcolas
Source avec Zip Source avec une capture ASP - VISUALISATEUR DE TABLE par rcolas

Commentaires et avis

Commentaire de cs510 le 30/05/2008 17:27:32

J' ai essaye ce code mais il se plante , la copie ne se fait pas , le répertoire fichierstemp a t il une place specifique ?

merci de me repondre

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Requête SQL, Access et Oracle [ par Zeus ] Problème:Je passe une variable "no_groupe" en paramètre entre deux pages web de la page qui reçois la variable je veux l'utiliser dans une requête SQL ASP et EXCEL [ par sebcorse ] SalutVoila mon probleme : j'utilise un site qui permet d'afficher, de saisir et de modifier des donnees a partir d'une BDD Access en ASPEt tout foncti exporter une base SQL server [ par sbertrand ] bonjour,J'utilise access XP pour me connecter sur ma base SQL server.Le probleme c'est qu'a chaque modif d'une ligne, access envoi une requete au serv imprimer [ par stephC ] helloj'aimerais imprimer des documents.Je n'ai jamais fait celaJ'ai un planning a imprimer. Soit j' imprime sous excelen fait je genere un fichier pla sql vers access [ par astt ] Reprendre un exemple de code .net s'appuyant sur une data base SQL server et l'utiliser avec une base access, voila un beau challenge . Je me demande access vs sql [ par astt ] Reprendre un exemple de code .net s'appuyant sur une data base SQL server et l'utiliser avec une base access, voila un beau challenge . Je me demande SQL séléction au hasard d'un enregistrement d'une table access [ par txR_ch ] Salut,je cherche déséspérement la requête SQL pour access qui séléctionne un enregistrement (ou une ligne) au hasardJe sais que c'est possible pour my EXCEL Via ASP dans ACCESS [ par Salmiok ] Bonjour,Apres avoir crée un rep d'UPLOAD, j'aimerai bien que mes fichiers EXCEL remplissent une table (sous ACCESS). Pour le reste (mise en place sous UPDATE dans ACCESS [ par Titrax ] Voila mon programme :SQL="UPDATE Personne SET Connect='1' WHERE Nom='" & Pseudo & "';"Set RS=Server.CreateObject("ADODB.RECORDSET")RS.Open SQL,Baseet mise à jour champ date sur access par update (SQL) [ par caussieu ] Bonjour,Voici le code utilisé pour mettre à jour la base de données Access sous ASP / SQL : sql = "Update animations Set animation='"&animation&"', li


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales