Bonjour.
Existe-t-il une classe sous VB2008 qui permettrait de convertir tout
caractère spécial (lettre accentuée, etc) en son équivalent numérique
(é pour é) par exemple ?
Merci d'avance,
Gilbert
Bonjour.
Existe-t-il une classe sous VB2008 qui permettrait de convertir tout
caractère spécial (lettre accentuée, etc) en son équivalent numérique
(é pour é) par exemple ?
Merci d'avance,
Gilbert
Bonjour.
Existe-t-il une classe sous VB2008 qui permettrait de convertir tout
caractère spécial (lettre accentuée, etc) en son équivalent numérique
(é pour é) par exemple ?
Merci d'avance,
Gilbert
Bonjour Patrice, et merci pour ta réponse.
Mais elle ne résout pas mon souci, j'entre donc dans les détails :
J'ai une page ASP 2008 qui affiche une GridView, et un bouton permettant à
l'utilisateur de télécharger une feuille Excel avec le contenu de cette
GridView. En voici le code (à partir d'un exemple trouvé sur Internet) :
Private Sub BtnExportExcel_Click(ByVal sender As Object _
, ByVal e As System.EventArgs) _
Handles BtnExportExcel.Click
Call PreparerGrille(GvDemande)
Call ExporterGrille()
End Sub
Private Sub ExporterGrille()
' Exportation proprement dite
Dim FeuilleExcel As String = "attachment;
filenameÞmandesCaution.xls"
Response.ClearContent()
Response.AddHeader("content-disposition", FeuilleExcel)
Response.ContentType = "application/ms-excel"
Dim Sw = New StringWriter()
Dim Htw As HtmlTextWriter = New HtmlTextWriter(Sw)
' Créer une nouvelle Form pour contenir la grille
Dim F As New HtmlForm
GvDemande.RowStyle.BorderStyle = BorderStyle.NotSet
GvDemande.Parent.Controls.Add(F)
F.Attributes("runat") = "server"
F.Controls.Add(GvDemande)
F.RenderControl(Htw)
'GvDemande.RenderControl(Htw)
Dim s As String = Sw.ToString()
's = Server.HtmlEncode(s)
's = s.Replace("à", "è").Replace("é", "é").Replace("ë",
"ë")
Response.Write(s)
Response.End()
End Sub
Private Sub PreparerGrille(ByVal c As Control)
' Préparation (changement de certaines colonnes)
For i As Integer = 0 To c.Controls.Count - 1
Dim ci As Control = c.Controls(i)
If TypeOf (ci) Is LinkButton Then
Dim Literal As New Literal
Literal.Text = DirectCast(ci, LinkButton).Text
c.Controls.Remove(ci)
c.Controls.AddAt(i, Literal)
ElseIf TypeOf (ci) Is HyperLink Then
Dim Literal As New Literal
Literal.Text = DirectCast(ci, HyperLink).Text
c.Controls.Remove(ci)
c.Controls.AddAt(i, Literal)
End If
If ci.HasControls Then
Call PreparerGrille(ci)
End If
Next
End Sub
À l'exécution, je constate que certains textes comportant des lettres
accentuées sont correctement affichés dans Excel, alors que d'autres pas.
L'utilisation de l'instruction «s = s.Replace("à", "è").Replace("é",
"é").Replace("ë", "ë")» résout ce problème pour certains
caractères, mais la liste exhaustive des remplacements est longue et c'est
pourquoi je cherche une méthode toute faite.
Gilbert
Bonjour Patrice, et merci pour ta réponse.
Mais elle ne résout pas mon souci, j'entre donc dans les détails :
J'ai une page ASP 2008 qui affiche une GridView, et un bouton permettant à
l'utilisateur de télécharger une feuille Excel avec le contenu de cette
GridView. En voici le code (à partir d'un exemple trouvé sur Internet) :
Private Sub BtnExportExcel_Click(ByVal sender As Object _
, ByVal e As System.EventArgs) _
Handles BtnExportExcel.Click
Call PreparerGrille(GvDemande)
Call ExporterGrille()
End Sub
Private Sub ExporterGrille()
' Exportation proprement dite
Dim FeuilleExcel As String = "attachment;
filenameÞmandesCaution.xls"
Response.ClearContent()
Response.AddHeader("content-disposition", FeuilleExcel)
Response.ContentType = "application/ms-excel"
Dim Sw = New StringWriter()
Dim Htw As HtmlTextWriter = New HtmlTextWriter(Sw)
' Créer une nouvelle Form pour contenir la grille
Dim F As New HtmlForm
GvDemande.RowStyle.BorderStyle = BorderStyle.NotSet
GvDemande.Parent.Controls.Add(F)
F.Attributes("runat") = "server"
F.Controls.Add(GvDemande)
F.RenderControl(Htw)
'GvDemande.RenderControl(Htw)
Dim s As String = Sw.ToString()
's = Server.HtmlEncode(s)
's = s.Replace("à", "è").Replace("é", "é").Replace("ë",
"ë")
Response.Write(s)
Response.End()
End Sub
Private Sub PreparerGrille(ByVal c As Control)
' Préparation (changement de certaines colonnes)
For i As Integer = 0 To c.Controls.Count - 1
Dim ci As Control = c.Controls(i)
If TypeOf (ci) Is LinkButton Then
Dim Literal As New Literal
Literal.Text = DirectCast(ci, LinkButton).Text
c.Controls.Remove(ci)
c.Controls.AddAt(i, Literal)
ElseIf TypeOf (ci) Is HyperLink Then
Dim Literal As New Literal
Literal.Text = DirectCast(ci, HyperLink).Text
c.Controls.Remove(ci)
c.Controls.AddAt(i, Literal)
End If
If ci.HasControls Then
Call PreparerGrille(ci)
End If
Next
End Sub
À l'exécution, je constate que certains textes comportant des lettres
accentuées sont correctement affichés dans Excel, alors que d'autres pas.
L'utilisation de l'instruction «s = s.Replace("à", "è").Replace("é",
"é").Replace("ë", "ë")» résout ce problème pour certains
caractères, mais la liste exhaustive des remplacements est longue et c'est
pourquoi je cherche une méthode toute faite.
Gilbert
Bonjour Patrice, et merci pour ta réponse.
Mais elle ne résout pas mon souci, j'entre donc dans les détails :
J'ai une page ASP 2008 qui affiche une GridView, et un bouton permettant à
l'utilisateur de télécharger une feuille Excel avec le contenu de cette
GridView. En voici le code (à partir d'un exemple trouvé sur Internet) :
Private Sub BtnExportExcel_Click(ByVal sender As Object _
, ByVal e As System.EventArgs) _
Handles BtnExportExcel.Click
Call PreparerGrille(GvDemande)
Call ExporterGrille()
End Sub
Private Sub ExporterGrille()
' Exportation proprement dite
Dim FeuilleExcel As String = "attachment;
filenameÞmandesCaution.xls"
Response.ClearContent()
Response.AddHeader("content-disposition", FeuilleExcel)
Response.ContentType = "application/ms-excel"
Dim Sw = New StringWriter()
Dim Htw As HtmlTextWriter = New HtmlTextWriter(Sw)
' Créer une nouvelle Form pour contenir la grille
Dim F As New HtmlForm
GvDemande.RowStyle.BorderStyle = BorderStyle.NotSet
GvDemande.Parent.Controls.Add(F)
F.Attributes("runat") = "server"
F.Controls.Add(GvDemande)
F.RenderControl(Htw)
'GvDemande.RenderControl(Htw)
Dim s As String = Sw.ToString()
's = Server.HtmlEncode(s)
's = s.Replace("à", "è").Replace("é", "é").Replace("ë",
"ë")
Response.Write(s)
Response.End()
End Sub
Private Sub PreparerGrille(ByVal c As Control)
' Préparation (changement de certaines colonnes)
For i As Integer = 0 To c.Controls.Count - 1
Dim ci As Control = c.Controls(i)
If TypeOf (ci) Is LinkButton Then
Dim Literal As New Literal
Literal.Text = DirectCast(ci, LinkButton).Text
c.Controls.Remove(ci)
c.Controls.AddAt(i, Literal)
ElseIf TypeOf (ci) Is HyperLink Then
Dim Literal As New Literal
Literal.Text = DirectCast(ci, HyperLink).Text
c.Controls.Remove(ci)
c.Controls.AddAt(i, Literal)
End If
If ci.HasControls Then
Call PreparerGrille(ci)
End If
Next
End Sub
À l'exécution, je constate que certains textes comportant des lettres
accentuées sont correctement affichés dans Excel, alors que d'autres pas.
L'utilisation de l'instruction «s = s.Replace("à", "è").Replace("é",
"é").Replace("ë", "ë")» résout ce problème pour certains
caractères, mais la liste exhaustive des remplacements est longue et c'est
pourquoi je cherche une méthode toute faite.
Gilbert