Hi kavithav,
Refer the below sample code as reference and modify you code.
C#
public Form1()
{
InitializeComponent();
this.BindDataGridView();
}
private void BindDataGridView()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Country",typeof(string)) });
dt.Rows.Add(1, "John Hammond", "United States");
dt.Rows.Add(2, "Mudassar Khan", "India");
dt.Rows.Add(3, "Suzanne Mathews", "France");
dt.Rows.Add(4, "Robert Schidner", "Russia");
this.dataGridView1.DataSource = dt;
}
private void btnExport_Click(object sender, EventArgs e)
{
ExportToExcel(dataGridView1, "Test");
}
public void ExportToExcel(DataGridView gridviewID, string excelFilename)
{
string path = @"C:\Users\dharmendra\Desktop\" + excelFilename + ".xlsx";
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
app.Visible = true;
worksheet = workbook.Sheets["Sheet1"];
worksheet = workbook.ActiveSheet;
worksheet.Name = "Exported from gridview";
for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
{
worksheet.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
}
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
}
worksheet.Cells[i + 2, 1].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green);
}
workbook.SaveCopyAs(path);
workbook.Saved = true;
workbook.Close();
app.Quit();
}
VB.Net
Public Sub New()
InitializeComponent()
Me.BindDataGridView()
End Sub
Private Sub BindDataGridView()
Dim dt As New DataTable()
dt.Columns.AddRange(New DataColumn(2) {New DataColumn("Id", GetType(Integer)), New DataColumn("Name", GetType(String)), New DataColumn("Country", GetType(String))})
dt.Rows.Add(1, "John Hammond", "United States")
dt.Rows.Add(2, "Mudassar Khan", "India")
dt.Rows.Add(3, "Suzanne Mathews", "France")
dt.Rows.Add(4, "Robert Schidner", "Russia")
Me.dataGridView1.DataSource = dt
End Sub
Private Sub btnExport_Click(sender As Object, e As EventArgs) Handles btnExport.Click
ExportToExcel(dataGridView1, "Test")
End Sub
Public Sub ExportToExcel(gridviewID As DataGridView, excelFilename As String)
Dim path As String = (Convert.ToString("C:\Users\dharmendra\Desktop\") & excelFilename) + ".xlsx"
Dim app As Microsoft.Office.Interop.Excel._Application = New Microsoft.Office.Interop.Excel.Application()
Dim workbook As Microsoft.Office.Interop.Excel._Workbook = app.Workbooks.Add(Type.Missing)
Dim worksheet As Microsoft.Office.Interop.Excel._Worksheet = Nothing
app.Visible = True
worksheet = workbook.Sheets("Sheet1")
worksheet = workbook.ActiveSheet
worksheet.Name = "Exported from gridview"
For i As Integer = 1 To dataGridView1.Columns.Count
worksheet.Cells(1, i) = dataGridView1.Columns(i - 1).HeaderText
Next
For i As Integer = 0 To dataGridView1.Rows.Count - 2
For j As Integer = 0 To dataGridView1.Columns.Count - 1
worksheet.Cells(i + 2, j + 1) = dataGridView1.Rows(i).Cells(j).Value.ToString()
Next
worksheet.Cells(i + 2, 1).Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green)
Next
workbook.SaveCopyAs(path)
workbook.Saved = True
workbook.Close()
app.Quit()
End Sub
Screenshot