PDA

Ver la Versión Completa : Imprimir hoja de excel sin visualizarla previamente


VRO
28-09-2005, 17:27:22
Hola, no se como imprimir una hoja de excel desde delphi sin visualizarlo previamente.

He declarado un a aplication de excel en un datamodule, y he declarado un objeto exc de tipo variant.

Ya probe con exc.print, pero nada no consigo que se imprima, da un error de: Metodo 'print' not supported by automation object'

¿Cómo lo puedo hacer?.

P.D: utilizo delphi 6

Gracias de antemano

Er_Manué
27-10-2005, 12:14:32
Para imprimir una hoja Excel sin visualizarla antes, únicamente tienes que emplear este código.

var
Excel: Variant;
miWBK, miWS : OleVariant;

...

begin
try
Excel := GetActiveOleObject('Excel.Application');
except
Excel := CreateOleObject('Excel.Application');
end;

// Impedimos que se muestre Excel
Excel.Visible := false;

// Abrimos el fichero .xls y obtenemos la hoja que necesitemos
miWBK := Excel.WorkBooks.Open(rutaHojaExcel);
miWS := miWBK.Worksheets.Item[nombreHojaExcel];

// Realizamos todas las operaciones con la hoja excel ---------------------
...

// Si quisieramos mostrar EXCEL antes de imprimir descomentamos el siguiente comentario :)
// Excel.Visible := true;

// Imprimimos la hoja excel (sin mostrar excel ya que Excel.Visible = false)
miWS.PrintOut

// Cerramos Excel ----------------------------------------------------------
try
Excel.DisplayAlerts := false;
Excel.Quit;
finally
Excel := Unassigned;
end;
end;

Salu2