Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Que componente uso para trabajar EXEL? (https://www.clubdelphi.com/foros/showthread.php?t=24162)

marceloalegre 10-08-2005 15:01:16

Que componente uso para trabajar EXCEL?
 
Buen dia:
necesitaria saber que componente debo usar para esto:
tengo una planilla en exel con este formato
Nombre Direccion Telefono
Juan calle 123 4511442
Pedro calle 234 4251254
..... ......... .........


tendria que pasar estos datos a una base de datos en interbase,,, con los mismos campos, el tema seria, que componente puedo usar que sea amigable para trabajar los datos en exel? y si me comentan algo del uso se los agradecere!
MUCHAS GRACIAS Y SALUDOS!!

lgarcia 10-08-2005 15:34:34

Componente para trabajar con Excel
 
Hola:

No tienes necesidad de utilizar ningun componente te envio un codigo que te puede servir para la importacion:

Código:

 
procedure TFormMenu.Ventas2Click(Sender: TObject);
var
  j: Integer;
begin
  try
        Excel := CreateOleObject('Excel.Application');
  except
        Excel.Quit;
        showmessage('No se pudo crear el Objecto Excel.');
        raise;
  end;
  if OpenDialogXls.Execute then Archivo:= OpenDialogXls.FileName
  else exit;
  Excel.Workbooks.Open(Archivo);
  j:= 2;
  repeat
        with InsertarProductos do
        begin
          Close;
          Parameters.ParamByName('@codigo').Value:= Excel.Cells[j,1].Value;
          Parameters.ParamByName('@descripprod').Value:= Excel.Cells[j,2].Value;
          Parameters.ParamByName('@idum').Value:= Excel.Cells[j,7].Value;
          Parameters.ParamByName('@preciopub').Value:= Excel.Cells[j,3].Value;
          Parameters.ParamByName('@precioemp').Value:= Excel.Cells[j,4].Value;
          Parameters.ParamByName('@descom').Value:= 0;
          Parameters.ParamByName('@periodo').Value:= 30;
          Parameters.ParamByName('@categoria').Value:= Excel.Cells[j,8].Value;
          Parameters.ParamByName('@costounitario').Value:= Excel.Cells[j,5].Value;
          Parameters.ParamByName('@cup').Value:= Excel.Cells[j,6].Value;
          Prepared:= True;
          ExecProc;
        end;
  inc(j);
  until Excel.Cells[j,2].Value = '';
  Excel.quit;
  ShowMessage(' El fichero de productos ha sido importado exitosamente');
end;

Donde debes declarar como variables locales a la Unit
Archivo: String;
Excel : Variant;

y debes poner en el uses de la Unit Excel97, ComObj
Ademas debes poner un OpenDialog en el formulario de importacion

Saludos
Luis Garcia

Neftali [Germán.Estévez] 10-08-2005 16:03:04

Otra opción es conectar a Excel utilizando los componentes estandard de ADO (ADOConnection y ADOTable) y podrás acceder a los datos de la hoja con los métodos estandard de una tabla.

marceloalegre 16-08-2005 18:25:41

No me queda muy claro... alguien podria pasarme un ejemplo de como leer valores desde excel??

mi idea es simple, seria leer datos y copiarlos a una base de datos, para automatizar valores que llegar hoy por hoy a un archivo de excel y un data entry tiene que pasar todo a mano...
Gracias!!!

marceloalegre 16-08-2005 20:09:11

1 Archivos Adjunto(s)
he leido esta info del foro comentada por Roman:

http://www.clubdelphi.com/foros/show...ighlight=excel

en la cual comenta como es el tema, pero no me funciona, les muestro mi fuente a ver que puede estar mal...

marceloalegre 16-08-2005 20:25:19

tambien veo en otro post que mete los datos en un stringgrid para trabajarlos... soy muy inexperto en esto.. les agradecere si alguien puede modificar mi fuente, solo necesito que los datos que estan en el exel pasen a una db interbase directamente, ya que el volumen de informacion es muy grande... gracias!

como puede hacercer? como especifico que es lo que quiero pasar, suponiendo que no conosco el limite de datos que puedo tener en el excel, o sea imaginemos
A B
Nombre Telefono
JUAN 123
PEDRO 234
HERNAN 555

Imaginemos que no se cuantos nombres seran ingresados... como le digo que me copie las columnas a y b sun incluir el titulo Nombre y telefono ya que todo a a una db...
Espero ser claro...? .... Gracias!

Neftali [Germán.Estévez] 17-08-2005 09:54:01

A mi me funciona perfectamente; Añadiendo un Next, cambiando el ancho de las columnas, un botoncito por aquí y eliminando el Enabled=False del form principal, pero funciona.

marceloalegre 17-08-2005 13:32:34

Neftali:
Ya entendí claramente como es el tema, no hay mejor explicación que el ejemplo!!!! MUCHAS Gracias por Ayudarme, estaba de apuros con un trabajo !!!

Gracias!!


La franja horaria es GMT +2. Ahora son las 21:48:16.

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