Exporter des donnees d une dataview vers excel

OracleSun Messages postés 2 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 22 janvier 2013 - 8 janv. 2007 à 18:20
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 9 janv. 2007 à 20:28
Bonjour tout le monde,
Merci de me dire comment je peux faire un export des donnees d'une dataview vers un fichier excel.
j ai trouvé un code qui permet l export d'une datagrid vers excel mais je n arrive pas a l adapter pour le dataview voici le code
Private

Sub verifColonne(ByVal monDataGrid As Control)

' On r‚cupŠre le nombre de controles enfants composant le DataGrid

Dim nbControls
As
Integer = monDataGrid.Controls.Count - 1

While nbControls >= 0verifColonne(monDataGrid.Controls(nbControls))

nbControls = nbControls - 1

End
While 

' Si la cellule ne contient pas du texte simple

If
Not (
TypeOf monDataGrid
Is TableCell)
Then

' Si le controle concern‚ … une prorpi‚t‚ "Selected Item" alors...

' Remarque : Seul les controles offrant des choix multiples ont une propri‚t‚ "SelectedItem"

If
Not (monDataGrid.GetType().GetProperty(
"SelectedItem")
Is
Nothing)
Then

Dim controleLitteral1
As LiteralControl =
New LiteralControlmonDataGrid.Parent.Controls.Add(controleLitteral1)

Try

' La cellule prend alors pour valeur le texte correspondant … la propri‚t‚ "SelectedItem"controleLitteral1.Text = _

CType(monDataGrid.GetType().GetProperty(
"SelectedItem").GetValue(monDataGrid,
Nothing),
String)

Catch monException
As Exception

' On r‚cupŠre l'exception en cas de problŠmeResponse.Write(monException.Message)

End
Try

' Le controle concern‚ est retir‚monDataGrid.Parent.Controls.Remove(monDataGrid)

 

Else

' Si le controle concern‚ n'a pas de propri‚t‚ "SelectedItem" alors on r‚cupŠre le

' texte (s'il y en a un) de sa propri‚t‚ "Text"

If
Not (monDataGrid.GetType().GetProperty(
"Text")
Is
Nothing)
Then

Dim controleLitteral2
As LiteralControl =
New LiteralControlmonDataGrid.Parent.Controls.Add(controleLitteral2)

' On attribue le texte de la propri‚t‚ "Text" … la cellule concern‚econtroleLitteral2.Text = _

CType(monDataGrid.GetType().GetProperty(
"Text").GetValue(monDataGrid,
Nothing),
String)monDataGrid.Parent.Controls.Remove(monDataGrid)

End
If 

End
If

End
If

End
Sub

Protected
Sub Button1_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles Button1.Click

' On appelle de verifColonne avec le nom du DataGrid concern‚ en paramŠtreverifColonne(monDG)

' On efface les ‚ventuelles donn‚es d‚j… dans la m‚moire tamponResponse.Clear()

' On place tout ce qui est destin‚ au client dans la m‚moire tamponResponse.Buffer =

True

' On d‚finit le type d'informations renvoy‚e, ici des donn‚es au format ExcelResponse.ContentType =

"application/vnd.ms-excel"

' On efface le jeux de caractŠres actuellement d‚finiResponse.Charset =

""

' On instancie deux objets qui vont nous permettre de r‚cup‚rer les donn‚es du DataGrid :

' le StringWriter et l'HtmlTextWriter

Dim monStringWriter
As IO.StringWriter =
New IO.StringWriter

Dim monHtmlTextWriter
As HtmlTextWriter =
New HtmlTextWriter(monStringWriter)

' On extrait le contenu du DataGrid dans l'HtmlTextWritermonDG.RenderControl(monHtmlTextWriter)

' On copie le contenu extrait dans la m‚moire tamponResponse.Write(monStringWriter.ToString())

' On ferme "le flux" de donn‚es et envoi les donn‚es au clientResponse.End()

 

 

End
Sub

1 réponse

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
9 janv. 2007 à 20:28
Bonsoir,

le moyen le plus simple est le plus propre est de faire un fichier .csv à partir de ton dataview ce qui est beaucoup plus propre que de générer du html pour excel ...

<hr />Cyril - MVS - MCP
0
Rejoignez-nous