Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VB.Net et Fichier Excel

2 réponses
Avatar
Sébastien
Bonjours,

je voulais dabort remercier les personnes qui mon repondu pour mon histoir
de description (je cherchais depuis plusieur jour, j'etait a la limite de
la depression ...lol)

maintenans je pause une autre petit question,
je cherche a lire un fichier excel (j'y arrive en fesans un object
"Excel.Application"), mais c relativement lent, je suis sur qu'il existe une
maniere pour lire le fichier rapidement, avec un object stream peut etre ?

si qq connais un truc ce serai sympa :-)

PS : je cherche juste a lire les donner, la mise en forme ne m'interesse
pas, ni le type de donner, je peu fair le traitement derriere (si tout
arrive en texte c parfais).

A++
seb

2 réponses

Avatar
Fred
Je ne vois pas comment lire directement un fichier Excel sans passer par un
"Excel.application". Par contre pusique tu n'as besoin que des donner
pourquoi ne pas simplement utiliser Excel pour sauvegarder le fichier en
.csv (c'est un fichier texte lisible avec le bloc-note. Les données étant
généralement séparées par des point-virgules) . Ensuite tu peux
effectivement passer un Stream pour ouvrir ce fichier directement.

A+

"Sébastien" <Aucun> a écrit dans le message de
news:
Bonjours,

je voulais dabort remercier les personnes qui mon repondu pour mon histoir
de description (je cherchais depuis plusieur jour, j'etait a la limite de
la depression ...lol)

maintenans je pause une autre petit question,
je cherche a lire un fichier excel (j'y arrive en fesans un object
"Excel.Application"), mais c relativement lent, je suis sur qu'il existe


une
maniere pour lire le fichier rapidement, avec un object stream peut etre ?

si qq connais un truc ce serai sympa :-)

PS : je cherche juste a lire les donner, la mise en forme ne m'interesse
pas, ni le type de donner, je peu fair le traitement derriere (si tout
arrive en texte c parfais).

A++
seb




Avatar
Sébastien
en fesans come sa ;-)

j'ai trouver un petit bout de code que j'ai modifier a ma sauce, et sa evite
les erreur, plus besoin de tester les champs vide, il te retourne dans un
tableau les ligne de excel, et c au moin 100 fois plus rapide qu'avec
Excel.Application (peu etre aussi que le methode de lire celulle par cellule
n'etait pas la meilleur .... ;-) )

merci encore a tous ce qui ec sont penchez dessu

a++
seb
Public Function Excel_LectureFichier(ByVal pChemin As String, ByVal
pNomFeuille As String) As Object(,)

Dim DS As System.Data.DataSet

Dim MyCommand As System.Data.OleDb.OleDbDataAdapter

Dim MyConnection As System.Data.OleDb.OleDbConnection

Dim lRetour(0, 0) As Object

MyConnection = New System.Data.OleDb.OleDbConnection( _

"provider=Microsoft.Jet.OLEDB.4.0; " & _

"data source=" & pChemin & "; " & _

"Extended Properties=Excel 8.0;")

' Select the data from Sheet1 of the workbook.

MyCommand = New System.Data.OleDb.OleDbDataAdapter( _

"select * from [" & pNomFeuille & "$]", MyConnection)

DS = New System.Data.DataSet

MyCommand.Fill(DS)

Dim lFeuilleExcel As DataTable

lFeuilleExcel = DS.Tables(0)

Dim lLigneExcel As DataRow

Dim lStr As String

Dim lCompteur As Long = 0

Dim lNB_Ligne As Long

Dim lNB_Colonne As Long

'Console.WriteLine(lFeuilleExcel.Rows.Count)

lNB_Ligne = lFeuilleExcel.Rows.Count

lNB_Colonne = lFeuilleExcel.Rows(0).ItemArray.GetUpperBound(0)



ReDim lRetour(lNB_Colonne, lNB_Ligne - 1)

For Each lLigneExcel In lFeuilleExcel.Rows







Dim lArray() As Object

lArray = lLigneExcel.ItemArray

For i As Long = 0 To lArray.GetUpperBound(0)



lStr = ""

If IsDBNull(lArray(i)) = True Then



lStr = ""

Else

lStr = lArray(i)

End If

lRetour(i, lCompteur) = lStr

Next

lCompteur += 1

'lStr = "(" & lCompteur & ") | "

'For i As Long = 0 To lArray.GetUpperBound(0)





' lStr += "{" & i & "} " & lArray(i)

' If i <> lArray.GetUpperBound(0) Then lStr += ","

'Next



'Console.WriteLine(lStr)

Next

Console.ReadLine()

MyConnection.Close()

Return lRetour

End Function

"Fred" <youkou> a écrit dans le message de
news:40d7eaa2$0$284$
Je ne vois pas comment lire directement un fichier Excel sans passer par


un
"Excel.application". Par contre pusique tu n'as besoin que des donner
pourquoi ne pas simplement utiliser Excel pour sauvegarder le fichier en
.csv (c'est un fichier texte lisible avec le bloc-note. Les données étant
généralement séparées par des point-virgules) . Ensuite tu peux
effectivement passer un Stream pour ouvrir ce fichier directement.

A+

"Sébastien" <Aucun> a écrit dans le message de
news:
> Bonjours,
>
> je voulais dabort remercier les personnes qui mon repondu pour mon


histoir
> de description (je cherchais depuis plusieur jour, j'etait a la limite


de
> la depression ...lol)
>
> maintenans je pause une autre petit question,
> je cherche a lire un fichier excel (j'y arrive en fesans un object
> "Excel.Application"), mais c relativement lent, je suis sur qu'il existe
une
> maniere pour lire le fichier rapidement, avec un object stream peut etre


?
>
> si qq connais un truc ce serai sympa :-)
>
> PS : je cherche juste a lire les donner, la mise en forme ne


m'interesse
> pas, ni le type de donner, je peu fair le traitement derriere (si tout
> arrive en texte c parfais).
>
> A++
> seb
>
>