Bonjour, je souhaite exporter les données d'une datagrid vers un fichier excel, j'ai mis la fonction suivante :
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
58
59
60
61
62
63
64
65
66
private void ExporterToExcel()
        {
            Excel._Application excel = new Excel.Application();
            Excel._Workbook workbook = excel.Workbooks.Add(Type.Missing);
            Excel._Worksheet worksheet = null;
 
            try
            {
                worksheet = workbook.ActiveSheet;
                worksheet.Name = "EtatAOs_" + DateTime.Now.Day + DateTime.Now.Month + DateTime.Now.Year;
 
                worksheet.Rows.HorizontalAlignment = HorizontalAlignment.Center;
 
                int cellRowIndex = 1;
                int cellColumnIndex = 1;
 
                for (int i = 0; i < dgRésultatRecherche.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dgRésultatRecherche.Columns.Count - 1; j++)
                    {
                        Excel.Range range1 = (Excel.Range)worksheet.Cells[1, cellColumnIndex];
                        Excel.Range range2 = (Excel.Range)worksheet.Cells[cellRowIndex + 1, cellColumnIndex];
 
                        worksheet.Cells[1, cellColumnIndex] = dgRésultatRecherche.Columns[j].HeaderText;
 
                        DateTime myDate;
                        if (!DateTime.TryParse(dgRésultatRecherche.Rows[i].Cells[j].Value.ToString(), out myDate))
                        {
                            worksheet.Cells[cellRowIndex + 1, cellColumnIndex] = dgRésultatRecherche.Rows[i].Cells[j].Value.ToString();
                        }
                        else worksheet.Cells[cellRowIndex + 1, cellColumnIndex] = myDate;
 
                        range1.Interior.Color = System.Drawing.Color.LightBlue;
                        range1.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
                        range1.Borders.Color = System.Drawing.ColorTranslator.ToOle(Color.Black);
                        range2.Borders.Color = System.Drawing.ColorTranslator.ToOle(Color.Black);
 
                        cellColumnIndex++;
                    }
                    cellColumnIndex = 1;
                    cellRowIndex = cellRowIndex + 1;
                }
 
                worksheet.Cells.EntireColumn.AutoFit();
 
                SaveFileDialog saveDialog = new SaveFileDialog();
                saveDialog.Filter = "Excel Files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
                saveDialog.FilterIndex = 2;
 
                workbook.SaveAs(@"C:\ModelesRapports\" + worksheet.Name);
 
                /*System.IO.StreamReader sr = new System.IO.StreamReader("C:\\ModelesRapports\\" + worksheet.Name + saveDialog.Filter);
                MessageBox.Show(sr.ReadToEnd());
                sr.Close();*/
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message, "Information", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            finally
            {
                excel.Quit();
                workbook = null;
                excel = null;
            }
        }
Sauf que la premiere ligne du datagrid ne s'affiche pas.
si le datagrid contient 3 lignes, la 2 et 3eme s'affichent mais la 1ere non plus.

Aucune idée, j'ai remarqué que la premiere ligne se remplace par les titres des colonnes

Une idée ?