PDA

Ver la Versión Completa : Abriendo y guardando archivo de excel con OLE


LuisAlf::
06-04-2012, 02:27:11
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'."

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.