Help dataset excel

spike62300 Messages postés 73 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 14 septembre 2007 - 9 mars 2005 à 15:14
spike62300 Messages postés 73 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 14 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 :)

spike

6 réponses

Pierre_faucon Messages postés 96 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 22 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?

A bientôt

Pierre Fauconnier
0
spike62300 Messages postés 73 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 14 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...


spike
0
Pierre_faucon Messages postés 96 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 22 mai 2007
9 mars 2005 à 16:11
Essaie ceci

dim app_Excel as excel.application

ou

dim app_Excel as new excel.application

Je pense qu'appeler ta variable Excel pose problème car Excel est un mot réservé dès lors que tu utilises une référence à Excel.

De ce que je me souviens ( en vba, ...) tu ne peux pas utiliser new avec Excel.application

Une des deux solutions fonctionne-t-elle?

Pierre Fauconnier
0
spike62300 Messages postés 73 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 14 septembre 2007
9 mars 2005 à 16:28
Dim ap_Excel
As Excel.Application



Dim intColumn, intRow, intColumnValue
As
Integer



Dim strExcelFile
As
String



Dim strFileName
As
String


grille.DataSource = DataSet11.Tables("FAMILLE")


OleDbDataAdapter1.Fill(DataSet11, "FAMILLE")


grille.SetDataBinding(DataSet11, "FAMILLE")


MsgBox("la vla")



'Dim strAppPath = System.Reflection.Assembly.GetExecutingAssembly.Location.Substring(0, System.Reflection.Assembly.GetExecutingAssembly.Location.LastIndexOf("") + 1)


ap_Excel.SheetsInNewWorkbook = 1


ap_Excel.Workbooks.Add()


ap_Excel.Worksheets(1).Select()



'For displaying the column name in the the excel file.



For intColumn = 0
To DataSet11.Tables(0).Columns.Count - 1


ap_Excel.Cells(1, intColumn + 1).Value = DataSet11.Tables(0).Columns(intColumn).ColumnName.ToString



Next



'For displaying the column value row-by-row in the the excel file.



For intRow = 0
To DataSet11.Tables(0).Rows.Count - 1



For intColumnValue = 0
To DataSet11.Tables(0).Columns.Count - 1


ap_Excel.Cells(intRow + 1, intColumnValue + 1).Value = DataSet11.Tables(0).Rows(intRow).ItemArray(intColumnValue).ToString



Next



Next



'strFileName = InputBox("Please enter the file name.", "Swapnil")



'strExcelFile = strAppPath & "employee"


ap_Excel.ActiveWorkbook().SaveAs(strExcelFile)


ap_Excel.ActiveWorkbook.Close()


MessageBox.Show("File exported sucessfully.", "Exporting done", MessageBoxButtons.OK, MessageBoxIcon.Information)


NormalExit:


ap_Excel.Quit()


ap_Excel =
Nothing


GC.Collect()



Exit
Sub



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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pierre_faucon Messages postés 96 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 22 mai 2007
9 mars 2005 à 16:32
Apparemment, tu renvoies le même message que tout à l'heure. As-tu essayé avec les modifs proposées ?

Pierre
0
spike62300 Messages postés 73 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 14 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.

spike
0
Rejoignez-nous