import fichier excel dans datgrid
Bonjour tout le monde
j'ai choisis un fichier excel, avec un openfiledilog. ce dernier doit s'afficher dans une gridview.
j'essaye avec le code suivant:
dans un linklabel j'appel la fonction "ImportExcel" comme suit :
Code:
1 2 3
| On Error Resume Next
ImportExcel(DGV, Parcourir(Me, OpenFileDialog1), "source")
Exit Sub |
la fonction importExcel :
Code:
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
| Dim int(7) As String
Public Sub ImportExcel(ByVal DGV As DataGridView, ByVal chemin As String, ByVal feuille As String)
On Error Resume Next
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
xlApp = New Excel.ApplicationClass
xlWorkBook = xlApp.Workbooks.Open(chemin)
xlWorkSheet = xlWorkBook.Worksheets(feuille)
'******************* importer fichier ****************
Dim range As Excel.Range = xlWorkSheet.UsedRange
Dim cCnt As Integer
Dim cRnt As Integer
'Dim rCnt As Integer
Dim Obj As New Collection
Dim st As String
getColumn()
'i = 0
For cCnt = 1 To range.Columns.Count
Obj.Add(CType(range.Cells(1, cCnt), Excel.Range))
DGV.Columns.Add(Obj(cCnt).value.ToString, Obj(cCnt).value.ToString)
Next
For rCnt As Integer = 2 To range.Rows.Count
DGV.Rows.Add()
For cCnt = 1 To range.Columns.Count
Obj.Add(CType(range.Cells(rCnt, cCnt), Excel.Range))
DGV.Item(cCnt - 1, rCnt - 2).Value = Obj(Obj.Count).value
DGV.Refresh()
Next
Next
DGV.Refresh()
End Sub |
dans cette fonction j'aappel la fonction "getcolumn" qui affecte les noms de premier chemps à gridview .
Code:
1 2 3 4 5 6 7 8 9
| Public Sub getColumn()
int(0) = "EXERCICE"
int(1) = "N°TR"
int(2) = "Date TR"
int(3) = "Client"
int(4) = "OPERATION"
int(5) = "CAMPAGNE"
int(6) = "MONTANT"
End Sub |
aussi j'utilise une autre fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| '///////////////////////////////////// Fonction défini le parcour dum fichier xls ///////////////////////
Public Function Parcourir(ByVal form1 As Form, ByVal OpenFileDialog1 As OpenFileDialog)
'*********************Chemin du fichier à trouver
Dim Chemin As String
Chemin = ""
'**********************Titre
OpenFileDialog1.Title = "Chargement"
'*********************Extension par défaut
OpenFileDialog1.DefaultExt = "xlsx"
'********************Filtres types fichiers
OpenFileDialog1.Filter = "Fichier(*.xlsx)|*.xlsx"
OpenFileDialog1.FilterIndex = 1
'**********************Ouverture boite de dialogue OpenFile
If OpenFileDialog1.ShowDialog(form1) = System.Windows.Forms.DialogResult.OK Then
'******************On charge le TextBox
Chemin = OpenFileDialog1.FileName
End If
Return Chemin
End Function |
le problème c'est que le programme ce bloque après l'import du fichier.