Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ordenar archivo de excel desde delphi (https://www.clubdelphi.com/foros/showthread.php?t=54340)

carlos gonzalez 14-03-2008 21:46:19

Ordenar archivo de excel desde delphi
 
Hola amigos alguien sabe si es posible ordenar un archivo de excel desde delphi.

Cree una macro en excel para sacar el codigo pero no he encontrado la forma de convertir ese codigo a codigo de delphi., este es el codigo

Range("A12:Z260").Select
Selection.Sort Key1:=Range("A12"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("E18").Select

Si alguien sabe si es posible hacer esto se los agradeceria si lo compartieran con un servidor.

Saludos..

Su amigo Charless

keyboy 14-03-2008 22:45:56

Ejemplo:

Código Delphi [-]

var
  Rango: OleVariant;

begin
  Rango := Hoja.Range['A2:D26'];
  Rango.Sort(Hoja.Range['A2'], xlAscending, EmptyParam, Hoja.Range['B2'], xlDescending);
end;

Hoja es una referencia a la hoja donde estén los datos. El ejemplo ordena los datos en el rango A2:D26 por dos columnas, la A ascendentemente y la B descendentemente.

Bye

suzely 27-09-2010 18:45:25

<he borrado el mensaje original, en el siguiente post se encuentra el problema que tengo>

suzely 27-09-2010 19:06:19

Correccion
 
Mi problema es que es una hoja de excel que estoy editando y al guardarla no me deja guardarla con el mismo nombre ni usa el SaveAs().

Este es el codigo que estoy usando:

Hoja := xls.Worksheets.Item[H];
Rango := Hoja.Range['A2: D'+inttostr(fila)];
Rango.Sort(Hoja.Range['C1'], xlAscending);
xls.Save;
xls.Quit;

suzely 27-09-2010 19:37:03

Encontre la razon de este problema, estaba creando dos veces el mismo objeto !!


Cita:

Empezado por suzely (Mensaje 377636)
Mi problema es que es una hoja de excel que estoy editando y al guardarla no me deja guardarla con el mismo nombre ni usa el SaveAs().

Este es el codigo que estoy usando:

Hoja := xls.Worksheets.Item[H];
Rango := Hoja.Range['A2: D'+inttostr(fila)];
Rango.Sort(Hoja.Range['C1'], xlAscending);
xls.Save;
xls.Quit;



La franja horaria es GMT +2. Ahora son las 10:03:56.

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