Exporter un datagridview vers excel

Contenu du snippet

Ce code permet d'exporter de manière simple un dataGridView vers Excel.
Il admet comme paramètre le nom du Contrôle dataGridView, le chemin vers un fichier excel de destination des données du dataGrid, et une chaine représentant l'en-tête du fichier excel généré.

Source / Exemple :


#region ExporterDataGridVersExcel Surchargé Type #1
        ///<summary>
        ///Permet d'exporter un DataGrid vers excel
        ///</summary>
        /// <param name="dgView">Data Grid Source des données à Exporter vers Excel</param>
        ///<param name="unFichier">Fichier Excel de destination des données</param>
        ///<param name="strEnteteDeFichier">Libellé de l'en-tête du fichier à générer</param>
        public void ExporterDataGridVersExcel(DataGridView dgView, String unFichier, string strEnteteDeFichier)
        {
            int i = 0;
            int j = 0;
            try
            {
                ExcelApplication excel = new ExcelApplication();
                Workbook exbook = (Workbook)excel.Workbooks.Add(Missing.Value);
                Worksheet exsheet = (Worksheet)excel.ActiveSheet;
                //Double[] Totaux= new Double[4];

                //Mise en forme de l'en-tête de la feuille Excel
                exsheet.Cells[1, 1] = strEnteteDeFichier;
                Range r = exsheet.get_Range(Convert.ToChar(65 + i).ToString() + "1", Missing.Value);
                r.Interior.ColorIndex = XlColorIndex.xlColorIndexAutomatic;
                r.Font.Bold = true;
                r.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexAutomatic, Missing.Value);
                r.EntireColumn.AutoFit();//Fin de la mise en forme de l'en-tête.

                foreach (DataGridViewColumn ch in dgView.Columns)
                {
                    r = exsheet.get_Range(Convert.ToChar(65 + i).ToString() + "1", Missing.Value);
                    exsheet.Cells[2, i + 1] = ch.Name.Trim();
                    r.Interior.ColorIndex = XlColorIndex.xlColorIndexAutomatic;
                    r.Font.Bold = true;
                    r.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexAutomatic, Missing.Value);
                    r.EntireColumn.AutoFit();
                    i++;
                }
                j = 3;

                foreach (DataGridViewRow uneLigne in dgView.Rows)
                {
                    i = 1;
                    foreach (DataGridViewColumn uneColonne in dgView.Columns)
                    {
                        r = exsheet.get_Range(Convert.ToChar(65 + i - 1).ToString() + j.ToString(), Missing.Value);
                        exsheet.Cells[j, i] = "'" + uneLigne.Cells[uneColonne.Name].Value.ToString().Trim();
                        r.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexAutomatic, Missing.Value);
                        r.EntireColumn.AutoFit();
                        i++;
                    }
                    exsheet.Columns.AutoFit();
                    j++;
                }
                exsheet.SaveAs(unFichier, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                excel.Quit();
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }//ExporterDataGridVersExcel
        #endregion //ExporterDataGridVersExcel

Conclusion :


Merci de l'améliorer et donner vos remarques.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.