Problème d'exportation de données vers excel
Bonjour, voila j'ai récupéré un code qui me permet d'exporter des données à partir d'un datagrid vers excel qui est celui-ci
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
|
Dim i
Dim iCnt As Integer
Dim tamponxls As String
tamponxls = vbNullString
iCnt = Me.BindingContext(ObjetDataSet, table).Count
For i = 0 To iCnt
If i = iCnt Then Exit For
tamponxls = tamponxls & (Me.DataGridMission.Item(i, 1)) & vbTab
tamponxls = tamponxls & (Me.DataGridMission.Item(i, 2)) & vbTab
tamponxls = tamponxls & (Me.DataGridMission.Item(i, 3)) & vbTab
tamponxls = tamponxls & (Me.DataGridMission.Item(i, 4)) & vbTab
tamponxls = tamponxls & (Me.DataGridMission.Item(i, 5)) & vbTab
tamponxls = tamponxls & (Me.DataGridMission.Item(i, 6)) & vbTab
tamponxls = tamponxls & (Me.DataGridMission.Item(i, 7)) & vbTab
tamponxls = tamponxls & (Me.DataGridMission.Item(i, 8)) & vbTab & vbCr
Next i
RichTextBox1.Text = tamponxls
Dim saveFileDialog1 As New SaveFileDialog
saveFileDialog1.Filter = "Excel|*.xls|Texte|*.txt|Richtext|*.rtf"
saveFileDialog1.Title = "Sauver le fichier exporter sous ?"
saveFileDialog1.ShowDialog()
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
RichTextBox1.SaveFile(saveFileDialog1.FileName, _
RichTextBoxStreamType.PlainText)
End If |
Cependant avec ce code j'ai un problème avec les signes & < L'opérateur '&' n'est pas défini pour 'Nothing' et type 'DataGridViewTextBoxCell'. >, j'ai voulu les remplacer par des + mais même problème < L'opérateur '+' n'est pas défini pour type 'DataGridViewTextBoxCell' et chaîne " ". >
du cou j'ai fait des recherches et j'ai voulu utiliser le code qui est disponible dans la faq vb.net pour exporter des données vers excel, mais j'obtiens cette erreur : "Exception de HRESULT : 0x800A03EC" et cela se passe au moment de la lecture des lignes et des colonnes de mon datagrid.
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
|
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
xlApp = CType(CreateObject("Excel.Application"), Excel.Application)
xlBook = CType(xlApp.Workbooks.Add, Excel.Workbook)
xlSheet = CType(xlBook.Worksheets(1), Excel.Worksheet)
' ici on compte le nombre de lignes et de colonnes du datatable
Dim nbrLigne As Integer = ObjetDataSet.Tables(table).Rows.Count - 1
Dim nbrColon As Integer = ObjetDataSet.Tables(table).Columns.Count - 1
Dim x, y As Integer
For x = 0 To nbrColon
' ici on prends le titre des colonnes du datatable
xlSheet.Cells(1, x + 1) = ObjetDataSet.Tables(table).Columns(x).ColumnName
' on mets la première ligne en gras
xlSheet.Rows(1).Font.Bold = True
' pour chaque colonne et chaque ligne on transfert les données
For y = 0 To nbrLigne
xlSheet.Cells(y + 2, x + 1) = DataGridMission.Item(y, x) ====> çà se passe ici le problème
Next
Next
' ici on affiche les résultat dans excel
xlSheet.Application.Visible = True
' on peut sauvegarder notre document sur le disque
xlSheet.SaveAs("C:\nom_document.xls")
' on quitte l'application et on détruit les objets
xlApp.Quit()
xlSheet = Nothing
xlBook = Nothing
xlApp = Nothing |
si quelqu'un avait une solution pour une des deux methodes, de préférence celle de la faq qui m'évite de passer par un richtextbox, çà m'aiderait vraiment beaucoup car j'ai pas trouvé de cas similaire sur le net
d'avance merci
@++
dubidon