I make datagridview export to excel, but Headcolumn don't show in excel files.

Sample

result (in Excel)
1 | mani | 213/435 | 0-892-342234-09
2 | ware | 1/67 | 053-36-49

But i need resuult (in Excel)
ID | Name | Address | Tel. >>> Headcolumn
1 | mani | 213/435 | 0-892-342234-09
2 | ware | 1/67 | 053-36-49

Code C# Windows Form

private void btExport_Click(object sender, EventArgs e)
        {
            string sql = @"SELECT id,fullname,address,tele FROM tablePeople";
            SqlCommand cmd = new SqlCommand(sql, Conn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds, "data");
            DataTable dt = ds.Tables["data"];

            Excel.Application xlApp;
            Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;
            object misValue = System.Reflection.Missing.Value;

            xlApp = new Excel.Application();
            xlWorkBook = xlApp.Workbooks.Add(misValue);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
            int r = 0;
            int c = 0;

            // DGV To EXCLE But HeadColumn don't show in excel
            for (r = 0; r <= dataGridView1.RowCount - 1; r++)
            {
                for (c = 0; c <= dataGridView1.ColumnCount - 1; c++)
                {
                    DataGridViewCell cell = dataGridView1[c, r];
                    xlWorkSheet.Cells[r + 1, c + 1] = cell.Value;
                }
            }

            xlWorkBook.SaveAs(@"c:\details.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
            xlWorkBook.Close(true, misValue, misValue);
            xlApp.Quit();

            releaseObject(xlWorkSheet);
            releaseObject(xlWorkBook);
            releaseObject(xlApp);

            MessageBox.Show("Excel file created");
        }

Thanks you very much for your time :)

I use a free Data Export component to export and find that the head column can be displayed.

Code here:

            Spire.DataExport.XLS.CellExport cellExport = new Spire.DataExport.XLS.CellExport();
            Spire.DataExport.XLS.WorkSheet worksheet1 = new Spire.DataExport.XLS.WorkSheet();
            worksheet1.DataSource = Spire.DataExport.Common.ExportSource.DataTable;
            worksheet1.DataTable = dt;
            worksheet1.StartDataCol = ((System.Byte)(0));
            cellExport.Sheets.Add(worksheet1);

First create your database and then use the database table in the DataGridView, even if that is with empty fields.
It saves you much trouble.

Edited 4 Years Ago by pritaeas: Removed self promotion link

This article has been dead for over six months. Start a new discussion instead.