Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Rangos (https://www.clubdelphi.com/foros/showthread.php?t=21818)

trex2000 28-05-2005 19:45:42

Rangos
 
Saludos:
Tengo una pequeña aplicacion que sacaba datos de excel y los mandaba a una tabla por medio de ADO, pero ahora tengo que importar por medio de rangos y no se como hacer esto, ¿alguien me podria ayudar?

De antemano muchas gracias :confused:

ramiretor 02-06-2005 00:20:47

Hola:
No me queda claro que son los rangos

Saludos

trex2000 02-06-2005 17:35:31

A lo que me refiero con los rangos es por ejemplo que tenga que importar de la celda A7 a la celda G27 pero no siempre es el mismo rango en otras ocasiones puede ser del B10 a H20.

Espero haberme dado a entender

De antemano muchas gracias

ramiretor 02-06-2005 19:35:01

Hola:
Necesito que pongas el código como lees en el archivo de Excel.

Saludos

trex2000 02-06-2005 20:41:27

Saludos:
Es que por lo pronto nomas hago un Select

Modulo.ADOQ_Excel.Close;
Modulo.ADOQ_Excel.SQL.Clear;
Modulo.ADOQ_Excel.SQL.Add('Select * From [Reporte$]');
Modulo.ADOQ_Excel.Open;

el Query esta conectado a un ADOConnectio.

No se si con eso sea suficiente.

De antemano muchas gracias.

ramiretor 02-06-2005 23:19:37

Hola:
Pensé que trabajabas con la paleta de componentes SERVERS o algo similar, y de ahi cargabas con ADO la tabla destino. Así como lo haces ¿se trae los valores de una hoja de Excel o de todo el libro?

Saludos

trex2000 03-06-2005 00:12:54

Hola:
Se trae los valores de la hoja que de le diga en el from

ramiretor 03-06-2005 00:27:59

Pues entonces tienes de dos caminos, 1) abrir el archivo Excel copiar el rango y ponerlo en otra hoja del libro y continuar como lo has venido haciendo ó 2) Hacer una macro en la que le pases como parámetro el rango que quieres copiar y pegarlo en una hoja de resultados. Te pongo el ejemplo como lo haría en Delphi:

Código Delphi [-]
  uses ComObj,....

procedure CopiaDatos(NombreArchivo, Rango: String);
var
  Excel, Libro: Variant;
begin

  try
     Excel := CreateOleObject('Excel.Application');
  except
    Excel.Quit;
    ShowMessage('Imposible abrir Excel');
    exit;
  end;
 
  Excel.DisplayAlerts := False;
  Excel.WorkBooks.Open(NombreArchivo);
  //Excel.Visible := True;

  Excel.WorkSheets['Fuente'].Select;
  Excel.Range[Rango].Select;
  Excel.Selection.Copy;
  Libro := Excel.Workbooks[1];


  Excel.WorkSheets['Destino'].Select;
  Excel.Range['A1'].Select;
  Excel.ActiveSheet.Paste;
  
  Libro.SaveAs(NombreArchivo); 

  Excel.Quit;

end;

Donde Fuente y Destino son hojas del libro de Excel. NombreArchivo es la ruta completa del archivo de Excel. Rango es el rango que quieres llevarte a la base de datos.

PD: Necesitas ver si es necesario que salves el archivo de lo contrario, no necesitas la variable Libro.

Espero te sirva
Saludos

trex2000 03-06-2005 01:14:27

Saludos:
Muchas gracias deja probar y te aviso haber como me fue


La franja horaria es GMT +2. Ahora son las 16:32:12.

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