Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [delphi] stampare un foglio excel

    ciao a tutti, avrei un piccolo problema...

    nel mio programma ho creato un ExcelApplication utilizzando un variant...
    ho compilato tutte le caselle che mi servivano prelevando i dati da un altro file...
    Salvo il file di excel... e dopo non so piu come stamparlo... ho provato a cercare in giro e nel help di delphi, ma non ho trovato molti aiuti, tranne che nel help che c'è un esempio per Word, ma che non riesco ad applicare a Excel...

    Se c'è qualcuno che può aiutarmi, ti prego fatti avanti...

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Riporta anche il codice che hai scritto, per avere un riferimento pratico su cui basarsi per eventuali suggerimenti.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    il codice è moooolto lungo... cmq adesso posto i passaggi principali...

  4. #4
    codice:
    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);
    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 creato

  5. #5
    Io quando ero nella tua situazione e non sapevo che fare, registravo una macro in excel facendo quello che mi serviva fare, e poi ricopiavo il codice nel mio programma.
    Nel tuo caso il comando che viene eseguito da excel è "ActiveWindow.SelectedSheets.PrintOut".

    Prova a farlo anche tu e poi fammi sapere.

    Ciao

  6. #6
    Originariamente inviato da Nikk11
    Io quando ero nella tua situazione e non sapevo che fare, registravo una macro in excel facendo quello che mi serviva fare, e poi ricopiavo il codice nel mio programma.
    Nel tuo caso il comando che viene eseguito da excel è "ActiveWindow.SelectedSheets.PrintOut".

    Prova a farlo anche tu e poi fammi sapere.

    Ciao
    SIIIII... FUNZIONA... ti adoro.. 6 un grande, mi hai tolto questo pensiero che mi assillava di notte... grazie ancora...


  7. #7
    scusate se rompo ancora, ma qualcuno sa come si fa a leggere la stampante selezionata nella print dialog??? so come farlo da excel, ma prima devo sapere il nome, nell'help di delphi non ho trovato niente in proposito :master: :master: ...

  8. #8
    Prova con "ActiveWindow.SelectedSheets.PrintOut.ActivePrinte r" o qualcosa del genere...

    Hei ho visto adesso che 6 di AVIO VVoVe:
    pure io lo sono

    Io sono Nicola Menolli, ci conosciamo?

    Ciao

  9. #9
    Originariamente inviato da Nikk11
    Prova con "ActiveWindow.SelectedSheets.PrintOut.ActivePrinte r" o qualcosa del genere...

    Hei ho visto adesso che 6 di AVIO VVoVe:
    pure io lo sono

    Io sono Nicola Menolli, ci conosciamo?

    Ciao
    vai AVIO... conquisteremo tutto il globo...

    cmq apparte scherzi io sono Flavio Cristoforetti, del '89...

  10. #10
    Originariamente inviato da Ned Hanster
    vai AVIO... conquisteremo tutto il globo...

    cmq apparte scherzi io sono Flavio Cristoforetti, del '89...


    Io invece sono 1 "vecchietto" del '79... mi sa che è x quello che non ci conosciamo.
    Beata gioventù

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.