Bonjour,
Je vous embête encore je sais :p
J'ai réussi à transférer l'intégralité de ma DataGridView dans les cases excel que je voulais, jusque la pas de soucis. la méthode export est relativement rapide sa peut aller.
Maintenant je voulais que toutes mes cases soit entourées pour crée visuellement un vrai tableau, ma méthode fonctionne j'ai le résultat attendue, mais alors mon application met un temps fou a traiter une par une mes cases...
voici mon code (enfin que la parti qui insert mes données):
voici ma methode FullBorder() :
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 // toutes nos variables nécessaire au boucle d'export int LigneDataGridView = 0; int ColonneDataGridView = 0; int LigneExcel = 27; int ColonneExcel = 3; int LigneExcelNbRST = 27; int NbRST = 1; //Supprime les colonnes indésirable dataGridView_ContenueXML.Columns.Remove("Date_Ajout"); dataGridView_ContenueXML.Columns.Remove("ID"); for (LigneDataGridView = 0; LigneDataGridView <= dataGridView_ContenueXML.RowCount - 1; LigneDataGridView++) { for (ColonneDataGridView = 0; ColonneDataGridView <= dataGridView_ContenueXML.ColumnCount - 1; ColonneDataGridView++) { DataGridViewCell cell = dataGridView_ContenueXML[ColonneDataGridView, LigneDataGridView]; xlWorkSheet.Cells[LigneExcel, ColonneExcel] = cell.Value; //Crée une bordure sur les cases de tout notre tableau. //Range est une zone selectionnée de façon virutelle Excel.Range RangeDonneeXml = xlWorkSheet.Cells[LigneExcel, ColonneExcel]; Excel.Range RangeNbrRst = xlWorkSheet.Cells[LigneExcelNbRST, 2]; FullBorder(RangeDonneeXml); FullBorder(RangeNbrRst); // Ajoute le nombre de RST ajouter xlWorkSheet.Cells[LigneExcelNbRST, 2] = NbRST; ColonneExcel++; } ColonneExcel = 3; LigneExcel++; LigneExcelNbRST++; NbRST++; }
j'ai pensée à une solution qui pourrait peut être gérer mon soucis, sa serait de faire comme une sélection range en diagonal et remplir le tout en bordure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private void FullBorder(Excel.Range rng) { Excel.Border border_Bottom = rng.Borders[Excel.XlBordersIndex.xlEdgeBottom]; Excel.Border border_Top = rng.Borders[Excel.XlBordersIndex.xlEdgeTop]; Excel.Border border_Right = rng.Borders[Excel.XlBordersIndex.xlEdgeRight]; Excel.Border border_Left = rng.Borders[Excel.XlBordersIndex.xlEdgeLeft]; border_Bottom.LineStyle = Excel.XlLineStyle.xlContinuous; border_Top.LineStyle = Excel.XlLineStyle.xlContinuous; border_Right.LineStyle = Excel.XlLineStyle.xlContinuous; border_Left.LineStyle = Excel.XlLineStyle.xlContinuous; }
Excel.Range selection = xlWorkSheet.Cells[27, 3], xlWorkSheet.Cells[LigneExcel , 5]; // ligne brouillon mais pour donnée le style que j'aimerai
et après je sais remplir les contours en bordure mais comment dire que ce Range je veux les contours et tout l'intérieur ?
enfin je me noie un peut dans tous les forums et tutos je me perd tout seul..
en espérant que de remplir les bordures que à la fin accélère le déroulement de ma méthode...
ps: si vous voulez ma méthode entière pour la tester chez vous demandé moi je vous la donnerais![]()
Partager