Bonjour,
J'exporte mon datagrid dans un fichier excel mais le problème est que les accents ne passent pas sous excel. J'ai pris une fonction trouvé sur internet mais qui ne marche pas
Lorsque je lance cette fonction avec mon datagrid en param j'ai une erreur du type :
voila le code de la fonction avec la ligne qui renvoie l'erreur en gras :
Code : Sélectionner tout - Visualiser dans une fenêtre à part La collection Controls ne peut pas être modifiée, car le contrôle contient des blocs de code (c'est-à-dire <% ... %>).
Si vous avez une idée de comment faire pour corriger cette fonction ou si vous avez un autre moyen de formatter mon datagrid pour qu'il s'exporte sous excel, n'hesitez pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 private void verifColonne(Control monDataGrid) { //On récupère le nombre de controles enfants composant le DataGrid int nbControls = monDataGrid.Controls.Count - 1; while (nbControls >= 0){ verifColonne(monDataGrid.Controls[nbControls]); nbControls = nbControls - 1; } //Si la cellule ne contient pas du texte simple if (!(monDataGrid is TableCell)){ //Si le controle concerné à une prorpiété "Selected Item" alors... //Remarque : Seul les controles offrant des choix multiples ont une propriété "SelectedItem" if( monDataGrid.GetType().GetProperty("SelectedItem")!= null) { LiteralControl controleLitteral1 = new LiteralControl(); monDataGrid.Parent.Controls.Add(controleLitteral1); try { //La cellule prend alors pour valeur le texte correspondant à la propriété "SelectedItem" controleLitteral1.Text = (string)monDataGrid.GetType().GetProperty("SelectedItem").GetValue(monDataGrid, null); } catch (Exception monException) { //On récupère l'exception en cas de problème Response.Write(monException.Message); } //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 ((monDataGrid.GetType().GetProperty("Text") != null)) { LiteralControl controleLitteral2 = new LiteralControl(); monDataGrid.Parent.Controls.Add(controleLitteral2); // On attribue le texte de la propriété "Text" à la cellule concernée controleLitteral2.Text = (string)monDataGrid.GetType().GetProperty("Text").GetValue(monDataGrid, null); monDataGrid.Parent.Controls.Remove(monDataGrid); } } }
Merci de vos réponses.
Partager