![]() |
Como importar datos desde Excel?
Hola que tal amigos, miren tengo un problema, necesito que en mi aplicación se pueda cargar datos desde hojas de excel a campos de tipo "Edit", pero no se ni como empezar. Por favor con que componentes se puede hacer esto? ya he estado buscando en varios foros pero la mayoria son para guardar hojas de Excel.
Miren la cuestión es esta, tengo un control de articulos de inventario en excel donde van separadas por grupo y por mes de esta forma: gpo || ENE || FEB || MAR || ABR || MAY ||.....|| DIC|| || TOT || 1 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX' 2 'EDITX' 'EDITX' 'EDITX' 'EDITX' ......... 'EDITX' 'EDITXX' 3 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX' 4 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX' .. .. 10 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX' En mi aplicación esta forma de igual manera, entonces quiero buscar un archivo, recoger la ruta en otro edit y con otro botón iniciar la transferencia de los datos colocados exactamente en los "edits" correspondientes. Bueno esa es mi idea, si ustedes usan otra manera para hacer algo similar por favor ayudame compartiendola y diciendome que componentes usar. De antemano gracias por su atención y les deseo suerte en sus proyectos ;). |
utiliza un DataSet
Cita:
Primero que nada Bienvenido al Club... te sugiero que te leas la guia de estilo Para tu caso puedes utilizar lo sgte.. Utilizar un componente de tipo DataSet (en la Jedi encuentras el JvDataSet).. vincularlo al archivo de Excel.. y mostrar los datos en un DBGrid que este vinculado al DataSet... yo utilizo ese metodo para capturar los datos desde un archivo de texto con columnas fijas... y me va de maravillas Mira, este codigo es para activar el DataSet (DTexto)...
Edito; me falto mencionar que al DataSet le puedes crear la cantidad de columnas que necesites y asigna los campos... con el tamaño (ancho o largo) que quieras Si necesitas más ayuda.. pregunta Salu2:p:D |
Hola axlrafael, también lo puedes hacer de esta forma.
Saluditos |
Muchas gracias amigo, tratare de hacerlo ahorita como ustedes me dijeron, solo otra cosita por favor, cuales componentes debo utilizar para hacer esto??
gracias |
Cita:
Hola, creo que en el ejemplo de caro, no tienes que usar ningun componente en especial... en el mode de importar los datos desde excel que te dí yo, te describo que componentes se utilizan... Cita:
|
Hola disculpen, se me olvido mencionar que trabajo con Delphi 6. Para mi amigo BlueSteel, perdoname pero no encuentro el componente DataSet ni tampoco la Jedi ni el JvDataSet :confused:.
|
También puedes usar los componentes ADO. Aquí hay detalles de cómo usarlos para acceder a una hoja de Excel.
// Saludos |
Cita:
Para encontrar esos componentes, debes intalar el Pack de Jedi..JCV y JCVL... no se si estan aquí... pero en más de un foro se ha tratado Salu2:p:D Revisa este link... donde puedes descargar dicho componente |
Muchisimas gracias Caro, me sirvio de mucho tu código, te debo una ;)
|
Me resulto un problema ¡¡¡
Hola Caro, quiero preguntarte ¿porque es que despues de utilizar el archivo de excel en mi aplicación ya no me deja abrirlo de nueva cuenta?, he notado que cuando jalo cualquier archivo Excel en la aplicación no me deja abrirlo, me lo abre de tipo solo lectura y por logica no me deja guardarlo si lo quiero modificar:confused:.
Tambien note que en el administrador de tareas me abre tantas veces intente abrir yo el mismo archivo que utilice en la aplicación un proceso que es el de Excel ("EXCEL.EXE") :confused: Espero que me puedas ayudar de nuevacuenta. Saludos y suerte :D |
Hola axlrafael, lo que pasa es que en el codigo que te pase, no estamos cerrando la hoja de excel, aumenta lo siguiente:
Saluditos |
:DGracias Caro, ya quedo resuelto mi problema:D.
Suerte ;) |
Que tal, he probado el codigo y funciona muy bien. Alguien sabe como listar las hojas que contiene el documento de excel; en el ejemplo se muestra utilizando la hoja, pero quisiera hacer dinamica esta parte y permitir que el usuario escoja la hoja que desee, alguien sabe como hacer esto?
|
Por ejemplo:
Posteriormente puedes hacer referencia a una hoja ya sea con el índice numérico o con el nombre:
// Saludos |
Muchas gracias, era exactamente lo que buscaba, ya lo pude implementar, gracias de nuevo
|
Hola compañeros del club... buscando otras alternativas para importar datos de excel (En mi caso para Firebird), encuentro generalmente este codigo que ustedes proponen, pero ultimamente tengo un problema con el mismo ya que de un momento a otro me salio el error "Out of memory" y no me completa la carga del archivo; por eso me gustaria saber si conocen de la posible causa de la aparicion de este error y una posible solucion... de antemano gracias
Saludos ;)... |
¿Es muy grande tu archivo? De ser así, quizá te funcione mejor usar ADO, tal como mencioné en el mensaje 7.
// Saludos |
Hola amigos, disculpen otra pregunta, ¿como puedo elegir el rango de F13:Q39 con el código que nos proporciono Caro?.
Es decir, tengo un formato de excel ya estandarizado pero los datos que necesito estan en este rango: F G H I J K L M N Ñ O P Q 13 14 15 .. ... ... 39 En el código aparece esto: Código:
RangoMatriz := Excel.Range['A1', Excel.Cells.Item[CantRow,CantCol]].Value; Saludos a todos. |
Cita:
|
Bueno estuve probando ADO y logre esto:
Aqui le paso al ADOConnection1 el archivo de excel que necesite por medio de un Edit... y luego solo lo abro, hasta funciona mas rapido :); la pregunta del millon sigue siendo, una vez tenga este problema solucionado que dll y bpl necesito para el instalador... Por cierto gracias por el codigo...;) PD: Aca usamos caritas para todo :confused::eek::mad::rolleyes::cool::p;):D |
La franja horaria es GMT +2. Ahora son las 23:26:54. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi