FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
exportar a excel un string grid
Hola , como puedo exportar a excel un stringgrid, me podeir ayudar??
|
#2
|
||||
|
||||
Puedes utilizar ADO para conectarte a Excel y ver una hoja como si fuera una tabla de una base de datos. Con esto no tienes más que copiar una a una las líneas.
// Saludos |
#3
|
|||
|
|||
puedes ponerme un ejemplo, es que no controlo mucho.
|
#4
|
||||
|
||||
Si realizas una búsqueda en los foros sobre excel o exportar a excel encontrarás mucha información respecto al tema.
__________________
|
#5
|
||||
|
||||
Hola
Tuve que repensar esta pregunta porque cuando te iba a poner el enlace a un ejemplo me di cuenta de un pequeño detalle. Vamos a resumir un poco. Hay dos métodos favoritos para acceder a una hoja de Excel:
El primero viene a ser el que te proporcionan las componentes de la paleta Servers y el segundo es usando las componentes de la paleta ADO. La razón por la que yo siempre recomiendo ADO en lugar de OLE es porque es mucho más rápido cuando se trata de una gran cantidad de registros. El detalle es que siempre había usado ADO para leer datos de una hoja de Excel más que para escribir. Y en este segundo caso, el problema es que si el archivo no existe hay primero que crearlo y llenar la fila de encabezados para que la conexión con ADO sea posible. Quizá con el mismo ADO pueda crearse el archivo pero en tal caso desconozco como. Así que vamos a dividir el problema en dos partes
Para crear el archivo usaremos OLE, aunque directamente, sin recurrir a las componentes de la paleta Server.
Para llenar las celdas lo hacemos mediante WorkSheet.Cells que es similar a StringGrid.Cells, es decir, un arreglo de dos dimensiones. Pero hay que observar dos cosas respecto a los índices del arreglo:
Así, por ejemplo, para llenar los títulos (nombres de 'campos') a partir de la primera fila del StringGrid haríamos:
Una vez llenados los encabezados puedes cerrar el archivo y comenzar con ADO o bien seguir llenando celdas con WorkSheet usando un doble ciclo:
Pero como mencioné antes, cuando se trata de muchos registros, la diferencia entre ADO y OLE puede ser enorme. Para usar ADO necesitas una componente TAdoConnection y una componente TAdoTable.
El llenado de las celdas se hace también con un doble ciclo:
Prueba ambos métodos para el llenado de celdas y dependiendo de los resultados y la cantidad de filas escoge el más adecuado. // Saludos |
|
|
|