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

25 ene 2010

Saber si un equipo esta en red

Hola ,antes que nada una disculpa por no esta al pendiente de este blogg que inicio, pero he tenido muchisimo trabajo, lo bueno es que tengo mas material para compartir con ustedes, no duden en hacer las preguntas que necesiten.

' verifica que hay conexión a internet
If My.Computer.Network.IsAvailable = False Then
MsgBox("No hay conexión a red, se guarda la información en archivo", MsgBoxStyle.Critical)
Exit Sub
End If
On Error Resume Next

'guardamos en la variable la direccion del ping
El_Ping = (My.Computer.Network.Ping("NombreDelEquipo"))

'Acá mandamos los mensajes para las 2 posibilidades
If El_Ping = False Then
'si no se pudo acceder ,avisamos
MsgBox("El servidor no está disponible.", MsgBoxStyle.Critical, "Error")
Else
'MsgBox("Servidor disponible.", MsgBoxStyle.Information, "Aviso")

End If




9 jul 2009

Crear archivos de texto en vb.net

Que tal, en esta caso veremos como crar un archivo de texto en vb.net, verificaremos si existe la carpeta donde se guardara el archivo y si no se creara.

Lo primero es utilizar el espacio de nombre system.IO como se ve en el codigo siguiente:


Imports System.IO ' esta a al principio de todo nuestro codigo

Despues dentro del procedimiento:

Dim sRenglon As String = Nothing
Dim strStreamW As Stream = Nothing
Dim strStreamWriter As StreamWriter = Nothing
Dim ContenidoArchivo As String = Nothing
' Donde guardamos los paths de los archivos que vamos a estar utilizando ..
Dim PathArchivo As String


Dim i As Integer

Try

If Directory.Exists("C:\Capeta") = False Then ' si no existe la carpeta se crea
Directory.CreateDirectory("C:\carpeta")
End If

Windows.Forms.Cursor.Current = Cursors.WaitCursor
PathArchivo = "C:\carpeta\Archivo" & Format(Today.Date, "ddMMyyyy") & ".txt" ' Se determina el nombre del archivo con la fecha actual

'verificamos si existe el archivo

If File.Exists(PathArchivo) Then
strStreamW = File.Open(PathArchivo, FileMode.Open) 'Abrimos el archivo
Else
strStreamW = File.Create(PathArchivo) ' lo creamos
End If

strStreamWriter = New StreamWriter(strStreamW, System.Text.Encoding.Default) ' tipo de codificacion para escritura


'escribimos en el archivo

strStreamWriter.WriteLine( "Primera linea en un archivo txt desde visual basic.Net" )


strStreamWriter.Close() ' cerramos

Catch ex As Exception
MsgBox("Error al Guardar la ingormacion en el archivo. " & ex.ToString, MsgBoxStyle.Critical, Application.ProductName)
strStreamWriter.Close() ' cerramos
End Try

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

Buen dia:

Esta es mi primer entrada en el blogg espero les sea de utilidad.

el codigo es el siguiente y se hizo con vb 2005:



Dim Datos As String = Nothing
Dim i, k As Integer

Try

Me.Cursor = Cursors.WaitCursor

For k = 0 To dgwArchivo.ColumnCount - 1
Datos = CStr(Datos & dgwArchivo.Columns(k).Name & vbTab)
Next

Datos = CStr(Datos & vbNewLine)
k = 0

'Recorremos todos los datos de la columna en la que hicimos click
For i = 0 To dgwArchivo.Rows.Count - 1
For k = 0 To dgwArchivo.ColumnCount - 1
Datos = CStr(Datos & CStr(dgwArchivo.Item(k, i).Value) & vbTab)
Next
Datos = Datos & vbNewLine
Next

' limpiamos el portapapeles

Clipboard.Clear()

'Copiamos los datos del Datagrid al Clipboard

Clipboard.SetText(Datos)

Me.Cursor = Cursors.Default

MsgBox("Archivo compiado con exito", MsgBoxStyle.Information,

Application.ProductName)

Me.Close()

Catch ex As Exception
MsgBox("Error al copiar el archivo: " & e.ToString, MsgBoxStyle.Critical,application.ProductName)
End Try