Dans ton DataSet, normalement tu as une fonction pour exporter au format CSV...
Là je suis pas chez moi mais je te fais le code des que je suis rentré ;)
__________________________
Prière de ne pas oublier le magnifique tag (résolu) si votre sujet l'est !
Salut,
Merci pistache pour ta réponse.Si la fonction est predefinie c' quoi son nom ??En fait je veux appeler cette fonction lors d'un click sur un Bouton dans une forme vb.net 2005. Ah j'avais trouver un code permettant de transferer un datagrid vers excel mais ça me pose un probleme en ajoutant
la reference Microsoft Excel 11.0 Object Library.
Public Class DataSetToExcelConverter
Private Function OS(ByVal Word As String) As String
Dim i As Integer = Word.IndexOf(".")
While i > -1
Word = Word.Remove(i, 1)
i = Word.IndexOf(".")
End While
Return Word
End Function
Public Sub ExportExcel(ByVal Table As DataTable, ByVal Location As String)
If My.Computer.FileSystem.FileExists(Location) Then My.Computer.FileSystem.DeleteFile(Location)
Dim CreateString As String = ""
Dim Columns As String = ""
Dim Mark As String = ""
Using Connection As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Location & ";Extended Properties=""Excel 8.0;HDR=YES""")
Connection.Open()
CreateString = "CREATE TABLE [" & Table.TableName & "] ("
Columns = "("
Mark = "("
For Each Column As DataColumn In Table.Columns
CreateString &= OS(Column.ColumnName)
Select Case Column.DataType.Name
Case "SByte", "Byte", "Int16", "Int32", "Int64", "Decimal", "Double", "Single"
CreateString &= " Number, "
Case "Boolean"
CreateString &= " Bit, "
Case "Char", "String"
CreateString &= " Memo, "
Case "DateTime"
CreateString &= " DateTime, "
Case Else
CreateString &= " Text, "
End Select
Columns &= OS(Column.ColumnName) & ", "
Mark &= "?,"
Next
CreateString = CreateString.Remove(CreateString.Length - 2, 2)
CreateString &= ")"
Columns = Columns.Remove(Columns.Length - 2, 2)
Columns &= ")"
Mark = Mark.Remove(Mark.Length - 1, 1)
Mark &= ")"
Using Command As New OleDb.OleDbCommand(CreateString.ToString, Connection)
Command.ExecuteNonQuery()
End Using
Using Adapter As New OleDb.OleDbDataAdapter("SELECT * FROM [" & Table.TableName & "$]", Connection)
Using ExcelDataset As New DataSet
Adapter.Fill(ExcelDataset, Table.TableName)
Adapter.InsertCommand = New OleDb.OleDbCommand("INSERT INTO [" & Table.TableName & "] " & Columns.ToString & " VALUES " & Mark.ToString, Connection)
For Each Column As DataColumn In Table.Columns
Select Case Column.DataType.Name
Case "SByte", "Byte", "Int16", "Int32", "Int64", "Decimal", "Double", "Single"
Adapter.InsertCommand.Parameters.Add("@" & OS(Column.ColumnName), OleDb.OleDbType.Numeric, 100, OS(Column.ColumnName))
Case "Boolean"
Adapter.InsertCommand.Parameters.Add("@" & OS(Column.ColumnName), OleDb.OleDbType.Boolean, 100, OS(Column.ColumnName))
Case "Char", "String"
Adapter.InsertCommand.Parameters.Add("@" & OS(Column.ColumnName), OleDb.OleDbType.Char, 65536, OS(Column.ColumnName))
Case "DateTime"
Adapter.InsertCommand.Parameters.Add("@" & OS(Column.ColumnName), OleDb.OleDbType.DBTimeStamp, 100, OS(Column.ColumnName))
Case Else
Adapter.InsertCommand.Parameters.Add("@" & OS(Column.ColumnName), OleDb.OleDbType.Char, 65536, OS(Column.ColumnName))
End Select
Next
For Each Row As DataRow In Table.Rows
If Row.RowState <> DataRowState.Deleted Then
Dim ExcelRow As DataRow = ExcelDataset.Tables(Table.TableName).NewRow
For i As Integer = 0 To Table.Columns.Count - 1
ExcelRow.Item(i) = Row.Item(i)
Next
ExcelDataset.Tables(Table.TableName).Rows.Add(ExcelRow)
End If
Next
Adapter.Update(ExcelDataset, Table.TableName)
End Using
End Using
End Using
End Sub
Public Sub ExportXML(ByVal Table As DataTable, ByVal Location As String)
Using Writer As New System.Xml.XmlTextWriter(Location, System.Text.Encoding.UTF8)
Writer.WriteStartDocument()
Table.WriteXml(Writer, XmlWriteMode.WriteSchema)
Writer.WriteEndDocument()
Writer.Close()
End Using
End Sub
End Class
Mets ça dans un fichier de ton projet (appelle le comme tu veux).
Et maintenant si tu veux utiliser ce code tu va devoir faire ça :
Dim converter As New DataSetToExcelConverter
converter.ExportExcel(datatable, "C:/fichier/de/destination.csv")
Voilà ! Remplace datatable par la table que tu veux exporter !
__________________________
Prière de ne pas oublier le magnifique tag (résolu) si votre sujet l'est !