I export datagrid to excel file using this below code. But it doesn't export datagrid header. I'm just change values at for loop. But it doesn't help me. Please help me.

 Dim xlApp As Excel.Application
        Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value
        Dim i As Integer
        Dim j As Integer

        xlApp = New Excel.Application
        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet = xlWorkBook.Sheets("sheet1")

        For i = 0 To MetroGrid1.RowCount - 2
            For j = 0 To MetroGrid1.ColumnCount - 1
                xlWorkSheet.Cells(i + 1, j + 1) = _
                  MetroGrid1(j, i).Value.ToString()


        Dim sd As New SaveFileDialog 'declare save file dialog
        If sd.ShowDialog = Windows.Forms.DialogResult.OK Then 'check if save file dialog was close after selecting a path
            xlWorkSheet.SaveAs(sd.FileName & ".xlsx") 'sd.filename reurns save file dialog path
        End If


and I wanted to describe answer about for loop code snip of above. I mean that how that loop work.

That datagrid may have a header but your code only exports the data in the grid. The usual datagrid's "header" is a property most likely called HeaderText and is not shown in your code.

So I googled this one with https://www.google.com/search?q=export+datagrid+with+header

Second hit finds an example exporting the header.