Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: katsumoto en 20 de Abril 2016, 20:27
-
Buenas a todos/as estoy haciendo una aplicacion en la que necesito rellenar con datos de una BD una hoja prediseñada en excel por ejemplo nombre: lo cojo de la db apellidos: lo mismo etc, alguien me podria orientar o recomendarme algun articulo para estudiarlo???
Gracias de antemano
-
Hola! Este hilo quizás te ayude: https://www.aprenderaprogramar.com/foros/index.php?topic=2444.0
Saludos
-
gracias por la respuesta ya he podido exportar bien, pero ahora se me presenta otro problema me gustaria que me orientarais como hacer para que llegado a un numero determinado de filas me añadiera una fila mas para no sobre escribir sobre la fila de totales
este es el codigo con el que exporto
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
Dim contador_reg As Integer
Try
exLibro = exApp.Workbooks.Open(My.Application.Info.DirectoryPath + "\excel\cursos.xls")
exHoja = exLibro.Worksheets(1)
' ¿Cuantas columnas y cuantas filas?
Dim NCol As Integer = DGV.ColumnCount
Dim NRow As Integer = DGV.RowCount
exHoja.Cells(1, 5).value = lugar_eve.Text
exHoja.Cells(1, 6).value = fecha_eve.Text
For Fila As Integer = 0 To NRow - 1
contador_reg = contador_reg + 1
For Col As Integer = 0 To NCol - 1
' pasa los datos a la hoja de excel
exHoja.Cells(Fila + 3, 1) = contador_reg
exHoja.Cells.Item(Fila + 3, Col + 2) = DGV.Rows(Fila).Cells(Col).Value()
Next
Next
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
-
Hola!
No entiendo muy bien a qué te refieres, ¿el fichero excel tiene algún contenido previo? ¿Quieres añadir una fila vacía después de la última fila exportada o antes de la última fila exportada?
Te dejo un código a ver si te ayuda
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = ""
Label1.AutoSize = False
End Sub
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objXLApp As Excel.Application
Dim intLoopCounter As Integer
Dim objXLWb As Excel.Workbook
Dim objXLWs As Excel.Worksheet
Dim objRange As Excel.Range
objXLApp = New Excel.Application
objXLApp.Workbooks.Open("C:\Users\Cesar\CursoVB\ejemplo.xlsx")
objXLWb = objXLApp.Workbooks(1)
objXLWs = objXLWb.Worksheets(1)
MsgBox("Ahora la celda A5 contiene: " & objXLWs.Cells(5, 1).value)
For intLoopCounter = 1 To CInt(objXLWs.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row)
objRange = objXLWs.Range("A" & intLoopCounter)
Label1.Text = Label1.Text & vbCrLf & objRange.Value
objRange = objXLWs.Range("B" & intLoopCounter)
Label1.Text = Label1.Text & " -- > " & objRange.Value
Next intLoopCounter
'Escribimos en el fichero
objXLWs.Cells(5, 1) = "Esto es una prueba"
MsgBox("Ahora la celda A5 contiene: " & objXLWs.Cells(5, 1).value)
objXLApp.Quit()
End Sub
End Class
Saludos!
-
la hoja tiene una cabecera y una fila de totales lo que quiero es que por mas filas que tenga el datagrid no me pase por encima la de totales
ejemplo:
nombre apellidos dni cuota
---------- ------------ ----- ---------
pepe lopez 1111 20
juan perez 2222 30
totales 50
si en lugar de dos filas paso 3 o mas dichas filas se cargan en las correspondientes a totales y lo que quiero es que la fila de totales o se desplace hacia abajo o llegado al numero de fila de totales añada una y escriba en ella, no se si me explico
pero de todas formas gracias por molestarte en contestarme se agradece mucho.
-
Hola lo que yo entiendo es que después de añadir la información debes recalcular la fila con los totales, si no recalculas ya no reflejará el total. En totales puedes tener o bien una fórmula o bien un número directamente, pero en cualquier caso si es una fórmula tendrás que poner el nuevo rango de celdas y si es un número tendrás que hacer el cálculo para obtenerlo después de la actualización.
Si esto es correcto la idea sobre los pasos que habría que dar sería:
1) Insertar la información actualizada en el fichero excel de modo que
1.1) Si la información contiene más filas de las existentes, se inserta la información (eliminando la fila de totales). Luego habría que calcular el total, e insertar la fila de totales actualizada.
1.2) Si la información contiene menos filas de las existentes, se inserta la información, se borran las filas sobrantes. Luego habría que calcular el total, e insertar la fila de totales actualizada.
Saludos!