Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Abriendo y guardando archivo de excel con OLE (https://www.clubdelphi.com/foros/showthread.php?t=78293)

LuisAlf:: 06-04-2012 02:27:11

Abriendo y guardando archivo de excel con OLE
 
Hola!

Estoy utilizando OLE para abrir un archivo de excel que ya contiene ciertos registros en el...
Entonces lo que quiero ahora es que en ese mismo archivo se agreguen otros nuevos registros creados por mi "Sistema" es decir que abajo del último existente me agregue los nuevos registros en el archivo de excel...

Este es el código que estoy usando pero me salta un error al accionar el procedimiento. "Raised exception class EVariantInvalidOpError with message 'Invalid variant operation'."
Código Delphi [-]
procedure TForm2.Excelexistente1Click(Sender: TObject);
var
  Excel, WorkBook, WorkSheet: Variant;
  i,ii,j:integer;
begin
  // crear instancia de la aplicación Excel (requieres la unidad ComObj)
  Excel := CreateOleObject('Excel.Application');

  Workbook :=  Excel.Workbooks.open(ExtractFilePath(Application.ExeName)+'\save.xls');

  // tomar una referencia a la hoja 
  WorkSheet := WorkBook.WorkSheets[1];

      showmessage(worksheet.cells[2,2]);

  ii:=1;
  j:=1;

  while WorkSheet.cells[ii,j]<>'' do
  begin
   inc(ii);
  end;
      
      showmessage(worksheet.cells[ii,j]);//-------> NO LO MUESTRA POR EL ERROR :/


.......
.................
.......................

  // guardar el archivo
  WorkBook.SaveAs(ExtractFilePath(Application.ExeName)+'save.xls');

  // Terminamos la instancia de Excel
  Excel.Quit;

end;
Nada mas muestro la parte donde quiero recorrer las filas del excel hasta llegar a la fila que este vacia, para posteriormente empezar a poner los nuevos registros.... pero como ven no me funciona :/

Espero que alguien me pueda hechar la mano!

Ñuño Martínez 09-04-2012 11:39:53

Aparte de que yo no usaría OLE porque este sí está obsoleto (quizá mejor usar Activex o algo así), no entiendo por qué usas VARIANT en lugar del tipo adecuado.

De cualquier forma, aunque hace mucho que no uso VARIAN supongo que deberás amoldar la variable para poder acceder a los métodos y propiedades del objeto. Estoy seguro al 99% de que es este el problema.


La franja horaria es GMT +2. Ahora son las 08:29:52.

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