Error al imprimir

Hola buen amigo...
Un favor, lo que sucede es que, como valor
agregado a la aplicación he querido implementar la impresión de un
gridview (donde reúno los datos de una consulta).
este es el código que estoy utilizando pero me salen los errorcitos que relaciono, me yudas por favor.......

Mira el código es el siguiente y no se qué estoy ejecutando mal...


Function GridAExcel(ByVal ElGrid As DataGridView, ByVal Inicio As Integer, _
ByVal Fin As Integer) As Boolean
‘Creamos las variables
Dim exApp As New Microsoft.Office.Interop.Excel.Application
Dim exLibro As Microsoft.Office.Interop.Excel.Workbook
Dim exHoja As Microsoft.Office.Interop.Excel.Worksheet
Try
‘Añadimos el Libro al programa, y la hoja al libro
exLibro = exApp.Workbooks.Add
exHoja = exLibro.Worksheets.Add()
‘ ¿Cuantas columnas y cuantas filas?
Dim NCol As Integer = ElGrid.ColumnCount
Dim NRow As Integer = Fin – Inicio
‘Aqui recorremos todas las filas, y por cada fila todas
‘las columnas y vamos escribiendo.
For i As Integer = 1 To NCol
exHoja.Cells.Item(1, i) = ElGrid.Columns(i – 1).Name.ToString
Next
‘El contador i es para que independientemente de
‘las filas que selecciones me comience a imprimir en
‘la hoja de Excel desde el primer renglón y no se salte
Dim Contador As Integer = 0
For Fila As Integer = Inicio To Fin
For Col As Integer = 0 To NCol – 1
exHoja.Cells.Item(Contador + 2, Col + 1) = _
ElGrid.Rows(Fila).Cells(Col).Value
Next
Contador = Contador + 1
Next
‘Titulo en negrita, Alineado al centro y que el tamaño de la
‘columna se ajuste al texto
exHoja.Rows.Item(1).Font.Bold = 1
exHoja.Rows.Item(1).HorizontalAlignment = 3
exHoja.Columns.AutoFit()
‘Aplicación visible
exApp.Application.Visible = True
exApp.WindowState = _
Microsoft.Office.Interop.Excel.XlWindowState.xlMaximized
exHoja = Nothing
exLibro = Nothing
exApp = Nothing
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, “Error al exportar a Excel”)
Return False
End Try
Return True

End Function

Mil gracias.

1 respuesta

Respuesta
1

Te dejo la función completa

Function ExportarExcel(ByVal DT As DataTable) As Boolean
'Dim BL As New BL_PRIMS.Mantenimiento.TemaInteres
'Dim DT As New DataTable
'DT = BL.ExportarExcel().Tables(0)
'Creamos las variables
Dim exApp As New Microsoft.Office.Interop.Excel.Application
Dim exLibro As Microsoft.Office.Interop.Excel.Workbook
Dim exHoja As Microsoft.Office.Interop.Excel.Worksheet
Try
'Añadimos el Libro al programa, y la hoja al libro
exLibro = exApp.Workbooks.Add
exHoja = exLibro.Worksheets.Add()
exHoja.Name = Reporte de Usuarios
' ¿Cuantas columnas y cuantas filas?
Dim NCol As Integer = DT.Columns.Count
Dim NRow As Integer = DT.Rows.Count
'Aquí recorremos todas las filas, y por cada fila todas las columnas y vamos escribiendo.
For i As Integer = 1 To NCol
exHoja.Cells.Item(1, i) = DT.Columns(i - 1).ColumnName.ToString
'exHoja.Cells.AutoFormat(vFormato)
Next
For Fila As Integer = 0 To NRow - 1
For Col As Integer = 0 To NCol - 1
exHoja.Cells.Item(Fila + 2, Col + 1) = ' + DT.Rows(Fila).Item(Col).ToString()
Next
Next
'Titulo en negrita, Alineado al centro y que el tamaño de la columna se ajuste al texto
exHoja.Rows.Item(1).Font.Bold = 1
exHoja.Rows.Item(1).HorizontalAlignment = 3
exHoja.Columns.AutoFit()
'Aplicación visible
exApp.Application.Visible = True
exHoja = Nothing
exLibro = Nothing
exApp = Nothing
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, Error al exportar a Excel )
Return False
End Try
Return True
End Function

Esto agarra cualquier Tabla (DataTable) y lo convierte en Excel, sin importar cuantos campos, como se llamen y demás.
Si tienes dudas me lo hace saber.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas