17 feb 2010

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

1 comentario:

  1. Seguramente algo me falta agregarr


    No me reconoce getfromini, archini, pdatatable.columns

    ResponderEliminar