in questo codice io copio un file di excel, sostituisco i campi che mi servono, lo mando in stampa (che però non so come fare), e poi elimino il file temporaneo cosi creatocodice:procedure TForm5.btnstampaClick(Sender: TObject); var Rec:TBase; NL:TFile; Pag:TPagina; Sorgente,Destinazione: file of Byte; By:Byte; ExcelAppl:Variant; begin //inizio copia file --------- AssignFile(Sorgente,'modulo_f23.xls'); Reset(Sorgente); AssignFile(Destinazione,'temp.xls'); Rewrite(Destinazione); while not eof(Sorgente) do begin read(sorgente,By); write(Destinazione,By); progbar.StepIt; end; closefile(Sorgente); closefile(Destinazione); // fine copia file ---------- ExcelAppl:=CreateOleObject('Excel.Application'); ExcelAppl.WorkBooks.Open('E:\Domus\PROGRAMMA\temp.xls'); //inserisco tutti i vari campi . . . //fine inserimento //inizio data Bazze:=DateToStr(Date); ExcelAppl.Range[Ix+'44']:=bazze[4]; ExcelAppl.Range[Kx+'44']:=bazze[5]; ExcelAppl.Range['M44']:=bazze[7]; ExcelAppl.Range['O44']:=bazze[8]; ExcelAppl.Range['Q44']:=bazze[9]; ExcelAppl.Range['S44']:=bazze[10]; //fine data if printdialog.Execute then begin //qui non so cosa mettere end; AssignFile(Destinazione,'temp.xls'); Erase(Destinazione);