Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    [PHP] Creare excel con immagini

    ciao a tutti,
    devo creare in Php un file excel che conterra' una immagine/logo, posizionata in alto a sinistra del documento e mi servirebbe una libreria (gratuita) che permetta di farlo.

    Se possibile vorrei evitare di installare la libreria Pear
    http://pear.php.net/package/Spreadsheet_Excel_Writer/

    In alternativa, ma vorrei evitare questa soluzione, potrei usare un template excel con l'immagine/logo gia' posizionata ed inserire i valori come se stessi creando un file excel normale.

    Che mi consigliate?
    Grazie in anticipo

    Edit
    Leggo nel link alla libreria PEAR questo
    Spreadsheet_Excel_Writer is outdated and needs a complete rewrite. If you want to help with this task please get in touch with us. Otherwise we don't recommend this package for new development.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Aggiungo che ho trovato queste librerie (PEAR) ben documentate e che dovrebbero andare bene.

    http://phpexcel.codeplex.com/

    Qualcuno le ha gia' usate e puo' darmi qualche dritta in proposito?
    Grazie

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Grazie per la risposta.
    Sono comunque riuscito a far funzionare la libreria che ho postato, inserendo valori, testo e formattando il tutto come vorrei io.
    L'unico inconveniente e' che non riesco ad inserire le immagini e penso, ma non sono sicuro, che dipenda dalla versione di Excel.
    In effetti nel manuale, quando indica l'inserimento di una immagine, scrive cosi'

    The following codes are supported by Excel2007:

    Code for "picture as background"

    Please make sure to add the image to the header/footer:
    $objDrawing = new PHPExcel_Worksheet_HeaderFooterDrawing();
    $objDrawing->setName('PHPExcel logo');
    $objDrawing->setPath('./images/phpexcel_logo.gif');
    $objDrawing->setHeight(36);
    $objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing, PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT );

    ....
    Ma e' possibile che e' solo un problema di compatibilita'?
    A conferma di questo, io ho la versione 2003 e se provo ad eseguire l'esempio "04printing.xlsx" dalla pagina

    http://phpexcel.codeplex.com/wikipag...ringTitle=Home

    L'immagine non me la visualizza
    Qualcuno con la 2007 puo' gentilmente verificarmi se questo e' il problema, visualizzando quindi l'immagine dell'esempio.

    Nel frattempo, do' un'occhiata al link che mi ha postato maje.

    Grazie in anticipo.

  5. #5
    con office 2007 non si vede nessuna immagine

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da maje
    con office 2007 non si vede nessuna immagine
    Grazie per la verifica.
    Il che e' anche peggio, perche' probabilmente e' proprio lo script che non funziona

    Cerco di indagare meglio.

    ps. il link che mi hai inviato non va bene, perche' nel caso dovessi inserire una immagine questa dovrebbe rimanere on-line e l'utente essere sempre collegato ogni volta che apre il file.

    O sbagliO?

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Trovato

    Il codice di riferimento per le versioni precedenti alla 2007 si trovano nel file "05featuredemo.inc" ed in particolare per inserire una immagine (le opzioni sono parecchie, mi limito solo al secondo esempio) e' questo

    Codice PHP:
    $objDrawing = new PHPExcel_Worksheet_Drawing();
    $objDrawing->setName('Paid');
    $objDrawing->setDescription('Paid');
    $objDrawing->setPath('./images/paid.png');
    $objDrawing->setCoordinates('B15');
    $objDrawing->setOffsetX(110);
    $objDrawing->setRotation(25);
    $objDrawing->getShadow()->setVisible(true);
    $objDrawing->getShadow()->setDirection(45);
    $objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); 


    Spero che questo 3D possa essere utile a qualcuno.

    Ciao

  8. #8

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Riapro questo 3D solo per avvertirvi di un errore nella apertura/download (senza salvataggio) dei file xls, che capita solo in Internet Explorer.
    Nel documento (e negli esempi) indica di impostare l'header in questo modo

    Codice PHP:
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="'.$nomefile.'.xls"');
    header('Cache-Control: max-age=0'); 
    Ma in alcuni casi (quando il dominio e' pubblico), con Internet Explorer non funziona. Non vi sto a spiegare i motivi, che potete trovare indicati qui http://code.google.com/intl/es-ES/sp...s/caching.html ma per sistemare la cosa, modificate in questo modo

    Codice PHP:
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="'.$nomefile.'.xls"');
    header("Pragma: public");
    header("Expires: 0"); // set expiration time
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    Qui ho preso lo spunto per la risoluzione
    http://www.php.net/manual/es/function.header.php#83384

    Spero che possa essere utile a qualcuno
    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.