PDA

Ver la Versión Completa : Rangos


trex2000
28-05-2005, 19:45:42
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:


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