A continuación os dejo el código fuente del programa hecho en visual basic 2012
Está probado y sin errores.
Podéis cambiar las variables por las vuestras.
Los nombres de los objetos y su correspondiente uso están en el siguiente listado
Exportar
- DGV (es un DataGridView) para ingresar y almacenar los datos a exportar
- Button1 para Exportar los datos a Excel
- Debemos importar System.Data.OleDb
- Crear un método ExportarExcel
Imports System.Data.OleDb
Public Sub ExportarExcel(ByVal dgv As DataGridView, ByVal pth As String)
Dim xlApp As Object = CreateObject("Excel.Application")
'creamos una nueva hoja de calculo
Dim xlWB As Object = xlApp.WorkBooks.add
Dim xlWS As Object = xlWB.WorkSheets(1)
'exportamos los caracteres de las columnas
For c As Integer = 0 To dgv.Columns.Count - 1
xlWS.cells(1, c + 1).value = dgv.Columns(c).HeaderText
Next
'exportamos las cabeceras de columnas
For r As Integer = 0 To dgv.RowCount - 1
For c As Integer = 0 To dgv.Columns.Count - 1
xlWS.cells(r + 2, c + 1).value = dgv.Item(c, r).Value
Next
Next
'guardamos la hoja de calculo en la ruta especificada
xlWB.saveas(pth)
xlWS = Nothing
xlWB = Nothing
xlApp.quit()
xlApp = Nothing
End Sub
- El botón Button1 que llama a la función con los parámetros DataGridView y Path
- En mi caso genero dos archivos, uno para gastos y otro para ingresos (de ahí los dos GridIngresos y GridGastos).
- Los guardaremos en una carpeta en C:\Programa\Excel\ y el año de la creación
- En el nombre de cada fichero el día y el mes de la creación
Private Sub Button1_Click
Dim correcto As Boolean = True
Dim d As Date
d = Date.Now
Dim completDate As String = d.ToString()
Dim aux() As String = completDate.Split(" ")
Dim fechaCompleta() As String = aux(0).Split("/")
Dim dia As String = fechaCompleta(0)
Dim mes As String = fechaCompleta(1)
Dim año As String = fechaCompleta(2)
Dim saveIngresos As New SaveFileDialog
saveIngresos.FileName = "C:Programa\Excel\" & año & "\" & dia & "." & mes & ".INGRESOS.xls"
Dim saveGastos As New SaveFileDialog
saveGastos.FileName = "C:Programa\Excel\" & año & "\" & dia & "." & mes & ".GASTOS.xls"
Try
ExportarExcel(GridIngresos, saveIngresos.FileName)
ExportarExcel(GridGastos, saveGastos.FileName)
Catch
MsgBox("No se pudo guardar", MsgBoxStyle.Exclamation, "Error")
correcto = False
End Try
If correcto Then
MsgBox("Ficheros generados correctamente", MsgBoxStyle.Information, "Correcto")
End If
End Sub
quiero en c#
ResponderEliminar