Exportar a excel en vb.net

Bueno, lo que realizaremos a continuacion es exportar un DataGridView a excel, les explico.

Primero se crea un proceso para realizar esta accion, el cual leera toda la informacion contenida en el Grid, y lo cuadara en una tabla:

Dim drow As DataRow
Dim col As Integer
Dim r As String
Dim dtable,
dtable2 As New DataTable
Dim fila As Integer


dtable.Clear()
dtable.Columns.Clear()

'Se crea un ciclo para los encabezados
For col = 0 To dgw.Columns.Count - 1
If dgw.Columns(col).Visible = True
Then
r = dgw.Columns(col).HeaderText.ToString
dtable.Columns.Add(New
DataColumn(r, GetType(String)))
End If
Next
drow = Nothing
col =
0
'Llenamos los registrod del table
For fila = 0 To dgw.Rows.Count - 1
drow = dtable.NewRow()
For col = 0 To dgw.Columns.Count - 1
If
dgw.Columns(col).Visible = True Then
drow(dgw.Columns(col).HeaderText.ToString) = CStr(dgw.Item(col, fila).Value)
End If
Next
dtable.Rows.Add(drow)
Next

Try
Dim iExp
As New Funciones
iExp.TablaExcel(dtable)

Catch ex As Exception
MsgBox(ex.Message)
End Try

Dentro del procedimiento anterior mandamos a llamar a otro procedimiento llamado "TablaExcel", el cual creara un archivo CSV(separado por comas), con la informacion de la tabla y asi lograr abrilo en excel o en Calc (openOffice)...

Dim vFileName As String
Dim archivo As String = Nothing

Dim SaveDlg
As SaveFileDialog = New SaveFileDialog()
SaveDlg.AddExtension = True
SaveDlg.DefaultExt = ".csv"
SaveDlg.Filter = "Documento CSV(.csv)*.csv"
SaveDlg.InitialDirectory = GetFromIni("Parametros", "PathReportes", ARCHINI)
SaveDlg.OverwritePrompt = True
SaveDlg.Title = "Guardar el archivo .csv"
If (SaveDlg.ShowDialog() = Windows.Forms.DialogResult.Cancel) Then
Exit
Sub
Else
vFileName = SaveDlg.FileName
End If

FileOpen(1,
vFileName, OpenMode.Output)

Dim sb As String = Nothing
Dim dc As
DataColumn
For Each dc In pDataTable.Columns
sb = sb & dc.Caption
& ","
Next
PrintLine(1, sb)

Dim i As Integer = 0
Dim dr
As DataRow
For Each dr In pDataTable.Rows
i = 0 : sb = ""
For Each
dc In pDataTable.Columns
If Not IsDBNull(dr(i)) Then
sb &=
CStr(dr(i)) & ","
Else
sb &=
Microsoft.VisualBasic.ControlChars.Tab
End If
i += 1
Next

PrintLine(1, sb)

Next
FileClose(1)

MsgBox("Archivo
exportado y guardado con exito", MsgBoxStyle.Exclamation, "E X P O R T A R")
Process.Start(vFileName)


Al finalizar te pregunta si desea abri el archivo, y lo hara con la plaicacino que tenga para esto.

Espero les sea de mucha utilidad y nos vemos en la proxima ocacion.

Saludos

F.Montaño

Comentarios

  1. Seguramente algo me falta agregarr


    No me reconoce getfromini, archini, pdatatable.columns

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Crear archivos de texto en vb.net

Copiar al protapapeles el contenido de un DGView en vb.net