Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Generare file excel da php

    Questo script trovato in rete mi permette di generare un file excel dei dati che passo con php, fin qui tutto ok, il mio problema è il seguente:

    1- quando genera il file mi viene inserita 1 riga vuota prima delle etichette e due dopo, come faccio per evitarlo ? non è molto importate, ma se si può fare è ancora meglio;
    2- apro il link in una popup, quello che vorrei e che al termine della conversione si chiuda la popup. Ho provato a mettere window.close() ma niente da fare, ancora meglio se la popup non viene aperta mi compaia direttamente la richiesta di salvataggio file.

    Codice PHP:
    function xlsBOF() {
            echo 
    pack("ssssss"0x8090x80x00x100x00x0);
            return;
        }
      
        function 
    xlsEOF() {
            echo 
    pack("ss"0x0A0x00);
            return;
        }

        function 
    xlsWriteLabel($Row$Col$Value ) {
            
    $L strlen($Value);
            echo 
    pack("ssssss"0x204$L$Row$Col0x0$L);
            echo 
    $Value;
            return;
        }

        include (
    "inc/connessione.php");
        
    $sql "SELECT  r.data_riparazione,a.modello,r.tecnico,r.guasto
            FROM t_riparazioni r INNER JOIN t_apparati a
            ON r.id_apparato = a.id_apparato
            WHERE r.stato = '1' ORDER BY r.data_riparazione DESC;"
    ;
        
        
    $rs mssql_query($sql) or die("Errore nel codice della query. ");

        
    // Send Header
        
    header("Pragma: public");
        
    header("Expires: 0");
        
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
        
    header("Content-Type: application/force-download");
        
    header("Content-Type: application/octet-stream");
        
    header("Content-Type: application/download");;
        
    header("Content-Disposition: attachment;filename=export_riparazioni_aperte.xls ");
        
    header("Content-Transfer-Encoding: binary ");

        
    // XLS Data Cell
        
    xlsBOF(); 
        
    xlsWriteLabel(1,0,"Data riparazione");
        
    xlsWriteLabel(1,1,"Modello");
        
    xlsWriteLabel(1,2,"Tecnico");
        
    xlsWriteLabel(1,3,"Guasto");
        
    $xlsRow 4;
        while(list(
    $data_riparazione,$modello,$tecnico,$guasto) = mssql_fetch_row($rs)) {
          ++
    $i;
            
    xlsWriteLabel($xlsRow,0,"$data_riparazione");
            
    xlsWriteLabel($xlsRow,1,"$modello");
            
    xlsWriteLabel($xlsRow,2,"$tecnico");
            
    xlsWriteLabel($xlsRow,3,"$guasto");
          
    $xlsRow++;
        }
        
    xlsEOF();
        exit();
        
    mssql_close($connessione); 
    Grazie,
    ciao.

  2. #2

    Soluzione

    non deve essere: xlsWriteLabel(1,0,"Data riparazione"); ma bensì: xlsWriteLabel(0,0,"Data riparazione");

    e la variabile $xlsRow = 4; deve essere impostata a: $xlsRow = 1;

    rimane da capire adesso come fare per chiudere la popup dopo il salvataggio, problema che si presenta solo su IE6, su IE7 invece si chiude in automatico alla fine del salvataggio del file.

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.