spike62300
Messages postés73Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention14 septembre 2007
-
9 mars 2005 à 15:14
spike62300
Messages postés73Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention14 septembre 2007
-
10 mars 2005 à 08:05
Bonjour a tous,
voila j'ai un souci pour exporter un dataset vers un nveau fichier excel.
Plusieurs procédés me sont proposés mais je n'arrive pas a comprendre. Le seul que je comprenne est une copie ligne pas ligne colone par colone en utilisant la référence microsoft excel 9.0
Probleme: je n'arrive pas a mettre en place ce procédé, j'ai souvent l'erreur:
Une exception non gérée du type 'System.InvalidCastException' s'est produite dans WindowsApplication02.exe
Informations supplémentaires : Échec de QueryInterface pour l'interface Excel._Application.
voila quelqu'un a une idée parcque la ca doit faire 2mois que je ne trouve pas et c un peu embetant
Merci de me répondre :)
Pierre_faucon
Messages postés96Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention22 mai 2007 9 mars 2005 à 15:44
Bonjour
Qu'entends-tu exactement par dataset? Peux-tu donner un extrait du code que tu utilises? Peux-tu effectuer le code pas à pas et indiquer la ligne à partir de laquelle tu as l'erreur?
spike62300
Messages postés73Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention14 septembre 2007 9 mars 2005 à 16:05
Private Function fncExcelExport(ByVal strSql As String)
Dim dsExcelExport As New System.Data.DataSet
Dim daExcelExport As System.Data.SqlClient.SqlDataAdapter
Dim Excel As New Excel.Application
Dim intColumn, intRow, intColumnValue As Integer
Dim strExcelFile As String
Dim strFileName As String
Dim conCurrent As New SqlClient.SqlConnection
conCurrent.ConnectionString = "data source=;initial catalog=pubs;User ID=sa;Password="
daExcelExport = New System.Data.SqlClient.SqlDataAdapter(strSql, conCurrent)
daExcelExport.Fill(dsExcelExport)
Dim strAppPath = System.Reflection.Assembly.GetExecutingAssembly.Location.Substring(0, System.Reflection.Assembly.GetExecutingAssembly.Location.LastIndexOf("") + 1)
With Excel
.SheetsInNewWorkbook = 1
.Workbooks.Add()
.Worksheets(1).Select()
'For displaying the column name in the the excel file.
For intColumn = 0 To dsExcelExport.Tables(0).Columns.Count - 1
.Cells(1, intColumn + 1).Value = dsExcelExport.Tables(0).Columns(intColumn).ColumnName.ToString
Next
'For displaying the column value row-by-row in the the excel file.
For intRow = 0 To dsExcelExport.Tables(0).Rows.Count - 1
For intColumnValue = 0 To dsExcelExport.Tables(0).Columns.Count - 1
.Cells(intRow + 1, intColumnValue + 1).Value = dsExcelExport.Tables(0).Rows(intRow).ItemArray(intColumnValue).ToString
Next
Next
'strFileName = InputBox("Please enter the file name.", "Swapnil")
strExcelFile = strAppPath & "employee"
.ActiveWorkbook().SaveAs(strExcelFile)
.ActiveWorkbook.Close()
End With
MessageBox.Show("File exported sucessfully.", "Exporting done", MessageBoxButtons.OK, MessageBoxIcon.Information)
NormalExit:
Excel.Quit()
Excel = Nothing
GC.Collect()
Exit Function
End Function
voila le code: en fait je l'ai bien sur modifier en mettant mon propre dataset et mon oledbdataAdapter que j'utilise. Ici c le SqlDataAdapter kil utilise.
Bref cela plante juste apres le with
J'ai beau declaré mon excel en tant que new excel.application
y me fait l'erreur que je t'ai di en haut quand il arrive a:
.SheetsInNewWorkbook = 1
puis add c la meme chose etc...
voici le code modifié:
j'ai changé ske tu ma di ca fait la meme erreur
en enlevant la declaration new devant application ca met un autre message d'erreur quand il arrive a worksheet:
Une exception non gérée du type 'System.NullReferenceException' s'est produite dans WindowsApplication02.exe
Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.
Voila si tu as une idée merci deja de m'avoir repondu.
La je dois y aller, je n'ai pu le net avant demain matin donc jte repondrais dem1 matin
Merci encore
spike
Vous n’avez pas trouvé la réponse que vous recherchez ?
spike62300
Messages postés73Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention14 septembre 2007 10 mars 2005 à 08:05
oui j'ai essayé les deux solutions.
Apparement tu crois que je suis en vba mais c'est faux je suis bien en vb.net donc theoriquement ce code devrait fonctionner.