Hola Exportar a Excel es algo muy común que requieren nuestras aplicaciones que trabajan con datos, siempre es útil poder permitir a nuestros usuarios manipular sus datos desde excel
Primero que nada es necesario importar la librería de Office:
using Microsoft.Office.Interop.Excel;
General mente se encuentra en:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA\Office15\Microsoft.Office.Interop.Excel.dll
La función es la siguiente:
public void _Exportar(System.Data.DataTable dgvDatos)
{
try
{
string temp;
int iColumnas = 0;
//Inicializacion de la conexion
Microsoft.Office.Interop.Excel.Application xlsApp = new Microsoft.Office.Interop.Excel.Application();
//Objento de Sheet
Worksheet xlsSheet;
//Objento de Libro
Workbook xlsBook;
//Indica si se ve el Excel o no
xlsApp.Visible = false;
xlsBook = xlsApp.Workbooks.Add(true);
xlsSheet = (Worksheet)xlsBook.ActiveSheet;
//Inicia a leer el datagrid para preparar la cabecera
for (int iCol = 0; iCol < dgvDatos.Columns.Count; iCol++)
{
iColumnas++;
//Agrega la cabecera a la hoja
xlsSheet.Cells[1, iColumnas] = dgvDatos.Columns[iCol].ColumnName;
}
for (int iRow = 0; iRow < dgvDatos.Rows.Count; iRow++)
{
int Col = 0;
for (int iCol = 0; iCol < dgvDatos.Columns.Count; iCol++)
{
Col++;
temp = dgvDatos.Rows[iRow].ItemArray[iCol].ToString();
xlsSheet.Cells[iRow + 2, Col] = temp;
}
}
xlsSheet.Columns.AutoFit(); //Ajusta ancho de todas las columnas
xlsApp.Visible = true;
//xlsApp.Quit();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Espero les sea útil.