Accueil > > > 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
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
Commentaires et avis
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
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
GRIDVIEW CHECKBOXGRIDVIEW CHECKBOX par invent001
Cliquez pour lire la suite par invent001 OUTIL MYSQLOUTIL MYSQL par nobla
Cliquez pour lire la suite par nobla
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|