Exportar DataSet a Excel

Hay alguna manera facil y rápida de exportar un DataSet a Excel desde VB.NET,

En Visual FoxPro yo usaba esto

COPY TO (DataSet) TYPE XLS

Aquí no se como hacerle.

1 Respuesta

Respuesta
1

En VB.NET usas la propiedad WriteXml del DataSet.

Dim DS As New DataSet
DS. WriteXml("C:\carpeta\archivo.xml")

Obviamente me salté el paso de cargarlo, pero eso ya lo sabes hacer.

ok, pero esto te crea un xml, no hay una manera parecida de mandarlo a un libro de excel

aunque esto esta buenicimo,

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
 '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) = 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