Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Hojas de Excel... (https://www.clubdelphi.com/foros/showthread.php?t=63666)

Jose Roman 25-02-2009 17:40:52

Hojas de Excel...
 
Hola a todos...
Me gustaria saber como puedo cargar en un ListBox las hojas que tiene un archivo de excel, tengo Delphi 7.
Gracias de antemano por la colaboracion.

Caro 25-02-2009 18:00:16

Hola Jose, lo puedes hacer de esta forma:

Código Delphi [-]
var
 WorkBook: OleVariant;
begin 
 for Ind := 1 to WorkBook.Worksheets.Count do
    ListBox1.Items.Add(WorkBook.Worksheets[Ind].Name);

Saluditos

Jose Roman 26-02-2009 17:04:07

Gracias por responder...
Tengo este procedimiento:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  ApXls : Variant;
  Libro : Variant;
  Hoja  : Variant;
begin
  try
    ApXls := CreateOleObject('Excel.Application');
    try
      ApXls.Visible := False;
      Libro := ApXls.WorkBooks.Add;
      Libro.Open('C:\Documents and Settings\LABORATORIO.FPINTO\Escritorio\COBRO.xls');
      ShowMessage(IntToStr(ApXls.WorkBooks.Worksheets.Count));
    finally
      ApXls.Quit;
      ApXls.Free;
    end;
  except

  end;
end;
Al tratar de saber cuantas hojas posee el libro de Excel abierto, me arroja este error:

EOleError with message 'Method 'Worksheets' not supported by automation object'.

No estoy utilizando componentes para abrir Excel solo las unidades ComObj y Excel2000.

Caro 26-02-2009 17:14:20

Hola de nuevo, debes hacerlo de esta forma :

Código Delphi [-]
  try
    ApXls := CreateOleObject('Excel.Application');
    try
      ApXls.Visible := False;
      Libro := ApXls.Workbooks.Open('C:\Documents and Settings\LABORATORIO.FPINTO\Escritorio\COBRO.xls');
      ShowMessage(IntToStr(Libro.Worksheets.Count));
    finally
      ApXls.Quit;
    end;
  ..............

Pruebalo y nos dices si te funciona.

Saluditos

Jose Roman 26-02-2009 17:39:58

Gracias eso era lo correcto...

Jose Roman 26-02-2009 18:03:19

Que pena molestar tanto, pero sabes como hago para realizar un cilo for para las filas que posean datos, es decir de la columna A fila 1 hasta fila X leer dato.

Caro 26-02-2009 22:39:42

Cita:

Empezado por Jose Roman (Mensaje 339454)
Que pena molestar tanto, pero sabes como hago para realizar un cilo for para las filas que posean datos, es decir de la columna A fila 1 hasta fila X leer dato.

Hola de nuevo, debes añadir lo siguiente:

Código Delphi [-]
var
 .............
 .............
 Rows, Cols : Integer;
 Rango: Variant;
begin
 .......................
  Hoja := ApXls.Workbooks['COBRO.xls'].WorkSheets[1];
  Hoja.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
 
  Rows := ApXls.ActiveCell.Row;
  Cols := ApXls.ActiveCell.Column;
 
  Rango := ApXls.Range['A1', ApXls.Cells.Item[Rows, Cols]].Value;
  for i:=1 to Rows do
   begin
    for j:=1 to Cols do
     begin
      Showmessage(Rango[i,j]);
     end;
   end;
 ........................

Saluditos

Ernesto Storch 27-02-2009 14:55:58

Templates de Excel
 
Hola,

He estado utilizando en una aplicación antigua (delphi 6) los templates de Excel de AfalinaSoft XL REPORT 4.2 (VCL) pero no encuentro ninguna versión nueva que pudiera servir para poder migrar la aplicación a Delphi Studio 2007 - win32.

Conoceis algún componente o programa similar que pudiera servir para no tener que volver a reestructurar más de 35 templates desarrollados?.

Muchas gracias!.
Un Saludo,

Ernesto Storch

Ernesto Storch 03-03-2009 10:07:50

Excel - registrar componente XL REPORT 4.2
 
Hola,

Logré modificar y compilar las units que viene en el Source del xl report 4.2 (vcl - Afalina 2001) en delphi 2007 pero no logro registrar el componente en DELPHI STUDIO 2007. El error es que no encuentra el RTL70.BPL ( No logra crearlo!). Alguién que sepa de programación de componentes me podría ayudar?. Envío los fuentes...
Gracias!, Saludos.

Ernesto.


Cita:

Empezado por Ernesto Storch (Mensaje 339583)
Hola,

He estado utilizando en una aplicación antigua (delphi 6) los templates de Excel de AfalinaSoft XL REPORT 4.2 (VCL) pero no encuentro ninguna versión nueva que pudiera servir para poder migrar la aplicación a Delphi Studio 2007 - win32.

Conoceis algún componente o programa similar que pudiera servir para no tener que volver a reestructurar más de 35 templates desarrollados?.

Muchas gracias!.
Un Saludo,

Ernesto Storch


Tejares 03-03-2009 13:44:49

Si no te encuentra RTL70.BPL es porque están creados con Delphi 7 y lo intentas compilar con 2007, sustituye RTL70.BPL por la versión del fichero correspondiente de Delphi 2007.

De todas formas, componentes creados para versiones antiguas de Delphi, no son necesariamente compatibles en las últimas, a menos que sepas adaptar el código fuente.

Ernesto Storch 03-03-2009 14:06:02

rtl70.bpl - AfalinaSoft XL Report
 
Hola,

Parece que el fabricante (AfalinaSoft) ha discontinuado el desarrollo de este producto. por lo tanto no hay Bpl para 2007.

Seguiré buscando una solución.

Gracias por tu respuesta.
Saludos

Tejares 03-03-2009 14:25:52

RTL es un fichero de Delphi, que cambia de nombre con cada versión.
Por lo tanto en tu Delphi 2007 lo tienes.

Cita:

Empezado por Ernesto Storch (Mensaje 339983)
Hola,

Parece que el fabricante (AfalinaSoft) ha discontinuado el desarrollo de este producto. por lo tanto no hay Bpl para 2007.

Seguiré buscando una solución.

Gracias por tu respuesta.
Saludos


Ernesto Storch 03-03-2009 16:50:53

rtl en delphi
 
ok, de acuerdo.
Gracias!


La franja horaria es GMT +2. Ahora son las 07:04: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