Exporter des donnees d une dataview vers excel

Signaler
Messages postés
2
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
22 janvier 2013
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
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

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
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