Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Componente FreeWare que importe doctos de excel a dbf (https://www.clubdelphi.com/foros/showthread.php?t=11531)

JorgeBec 16-06-2004 19:02:39

Componente FreeWare que importe doctos de excel a dbf
 
Hola! como continuacion de mi anterior mensaje, quisiera saber si alguien conoce un componente freeware que importe de excel a dbf, se los agradecere...bye...

marto 16-06-2004 20:45:37

mira aquí

orfeo 16-06-2004 21:20:03

el Database Export hace casi lo que queres.. http://www.korzh.com

es un componente que Toma un dataset del BDE (en tu caso asociado a un .xls) y lo exorta a muchos formatos en particular .dbf

los formatos son:

TKDatasetToText - export data from an active dataset into text file;
TKDatabaseToText - export and import whole database to the text files. Memo and BLOB fields are also supported;
TKDatasetToHTML - save an active dataset as HTML file;
TKDatasetToDBF - save an active dataset into DBase table;
TKDatasetToPrint - print dataset;

JorgeBec 16-06-2004 23:49:06

Antes que nada gracias por sus respuestas, bien me gusto la solucion que me diste Orfeo, de hecho ya la instale, pero ahora lo complicado o que al menos no se como hacerle, es, como crear poner un .xls en un DataSet??? por que el componente que me señalas lo ligas con un Dataset...


PD Varios colegas me han señalado el hacerlo con ADO, pero cabe señalar que estoy con Delphi 4 y sino me equivoco, no hay componentes ADO para esta version...

JorgeBec 17-06-2004 00:01:11

siguiendo con las pruebas del componente KdataSet, he intentado lo siguiente... con ODBC creo el alias con el driver xls, utilizo un TTable(por que no se cual utilizar) y le asignas el DatabaseName del alias que se creo por ODBC, pero obviamente a la hora de correrlo me dice que no hay un tablename asignado, y mi pregunta es entonces que componente que actue como DataSet utilizar??? o de plano ando perdido???


agradecere sus respuestas...

roman 17-06-2004 01:32:25

Cita:

Empezado por JorgeBec
o de plano ando perdido???

No, para nada, sólo te falta asignar el nombre de la tabla. Acabo de hacer una prueba igual a la tuya con BDE y ODBC y aunque la propiedad TableName no me lista las hojas en el inspecor de objetos, puedo escribir directamente el nombre de la hoja. Únicamente ten en consideración que debes agregar un signo $ al final del nombre de la hoja.

// Saludos

roman 17-06-2004 01:49:46

Otra cosa:

Te recomiendo que en lugar de asociar el Table directamente al alias ODBC lo hagas a través de una componente TDatabase:

Código:

Database1.AliasName -> alias ODBC
Database1.DatabaseName -> 'mibase' (puede ser cualquier nombre)
Database1.LoginPrompt -> false
Table1.DatabaseName -> 'mibase'

para que no te pida contraseña.

Por otra parte no necesitas ninguna componente extra para convertir a Dbase, Delphi trae todo lo necesario.

Te pongo un ejemplo.

Además de las componentes que ya tienes (Database1 y Table1) agrega otra TTable (digamos Table2) y le pones un nombre en TableName (el que gustes), y añade también una componente BatchMove que sirve precisamente para hacer transferencias.

Usa el siguiente código:

Código Delphi [-]
{ Creas la tabla destino }
Table2.TableName := 'exportado.dbf'; // cualquier nombre que gustes
Table2.TableType := ttDbase;
Table2.FieldDefs.Assign(Table1.FieldDefs);
Table2.CreateTable;

{ Transfieres datos }
BatchMove1.Source := Table1;
BatchMove1.Destination := Table2;
BatchMove.Execute;

¡Listo! Eso es todo.

// Saludos

JorgeBec 17-06-2004 17:49:37

Siguiendo tu ultimo mensaje roman, a la hora de correr el programa me manda este mensaje...

raised exception class EDBEngineError with message 'Key violation' Microsoft odbc excel driver The Microsoft Jet DataBase Engine cannot open the file unknown it is already opened

General sql error
exclusively by another user or you need permission


por que podra ser...???

marto 17-06-2004 18:19:38

¿Es posible que tengas el excel abierto?

JorgeBec 17-06-2004 19:27:04

Tal vez lo que hice mal fue ponerle la propiedad Tablename de Table1 mal, lo puse de la siguiente forma

Lotes.xls$ y tambien probe de la siguiente forma
Lotes$

y de las 2 formas me manda el error antes mencionado y no, no tengo abierto Excel...

JorgeBec 17-06-2004 19:54:07

Ok, ya paso el error ahora me marca lo siguiente


Código:

Table2.CreateTable;
en esta linea me marca 'EDBEngine with message Invalid Parameter '

supongo que algo en el Table2 esta mal, que podra ser???

mRoman 16-06-2005 17:17:10

Pregunta a ORFEO
 
Oye ORFEO, ya baje los componentes para exportar, realice un formulario llamado frmExportar, y a este le agregue el componente para Exportar a DBF, despues agregue un DataSet el cual tiene los datos que deseo exportar, visite la página de "korzh" y ahi menciona que en el procedure Transefer(...), que guarde el contenido del dataset, pero la verdad no sé en donde exactamente cambiarle...ya tengo integrado el archivo KDS2DBF.PAS a mi proyecto y desde el formulario que elaboré (frmExportar), lo quiero ejecutar, pero no sé que mas debo de cambiarle al archivo KDS2BDF para que funcione o no le tengo que hacer nada?......la bronca ademas de lo anterior, como lo ejectuo.

Gracias y disculpa, pero son mis inicios en Delphi. AH, utilizo Delphi6

orfeo 25-06-2005 21:03:39

Huu, perdona la demora...

Esto es facil, debe colocar un componete de exportacion de los que trae Database Export y un TTable o TQuery (el que te guste mas)

Supongamos que colocas un TTable y un KDataSetToDBF esto te creara las variables KDataSetToDBF1 y Table1 dentro del formulario

Debes configurar el Table1 con los parametros de la DB origen luego desde un evento onClick de un boton pones el codigo:

Código:

  Table1.close;
  KDataSetToDBF1.DataSet:=Table1;
  Table1.open;

  luego con

  KDataSetToDBF1.Transfer('c:\a.dbf');

  Te exporta el DataSet al archivo c:\a.dbf y listo.

Tambien anda en un query. Yo tambien uso Delphi 6 (no deberias tener problemas)

Este componente usa el TBatchMove que trea nativamente el DBE para lograr su funcion.

hasta la proxima...

ercrizeporta 25-06-2005 21:36:06

por favor, una ayuda!!
 
buenas antes de nada decir que no se como añadir un nuevo tema al foro. espero que alguien lea mi pregunta y a ver si podeis hacer el favor de contestarme, tb agradecería me dijerais como crear nuevos temas.
mis dudas sobre delphi son las siguientes:
1.- como ir posicionando el control del foco de un formulario hacia el campo que yo kiera en el momento que yo crea oportuno.

2.- una funcion prefijo, la cual me diga si una cadena de caracteres es prefijo de otra.

3.- como ir cambiando la posicion del cursor en un listbox.

mi idea es poner un edit y en la propiedad on change hacer que el cursor del listbox apunte hacia el primer item cuyo comienzo de palabra sea el mismo que en el edit.
sin mas despedirme y agradecer si alguien pudiera ayudarme a conseguir estas funciones. Muchas gracias!!!


La franja horaria es GMT +2. Ahora son las 05:09:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi