Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Scrivere su file excel

  1. #1

    Scrivere su file excel

    Salve a tutti....

    ho un problema riguardante i noiossisimi file di excel

    la faccenda sta cosi:

    ho uno script (ExcelReader) che mi legge i dati da file e fa quello che deve fare.
    Il problema è che i file che gli vanno dati in input sono tutti abbastanza recenti (Excel Reader ha qualche anno sulle spalle, se non sbaglio)e non li legge.
    Ergo ho provato a prendere il file e a convertirlo(manualmente, intendo da excel proprio) in un formato un po piu vecchio e funzia.

    Problema : convertire, da PHP, i file nuovi in formati vecchi.

    ho provato, spulciando quello che la rete offre, a usare queste funzioni

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

        function 
    xlsEOF() {
        echo 
    pack("ss"0x0A0x00);
        return;
        }

        function 
    xlsWriteNumber($Row$Col$Value) {
        echo 
    pack("sssss"0x20314$Row$Col0x0);
        echo 
    pack("d"$Value);
        return;
        }

        function 
    xlsWriteLabel($Row$Col$Value ) {
        
    $L strlen($Value);
        echo 
    pack("ssssss"0x204$L$Row$Col0x0$L);
        echo 
    $Value;
        return;
        } 
    che offrono rispettivamente di scrivere l'inizio, la fine, i numeri, e le scritte.

    Allora presa riga per riga, cella per cella e riscritte con quelle funzioni....ma il file non viene letto lo stesso.....che siano troppo recenti???

    ergo=> problema ad invecchiare i file, come fare?!?!?!?

    aiutooooo

    chiunque abbia la piu pallida idea di come aiutarmi vi prego lo faccia
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  2. #2
    Ho un altro problema....risolvendo questo risolvo anche l'altro forse

    ho messo queste scritte in cima alla pagina php

    Codice PHP:
     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=prova.xls "); 
    e mi apre direttamente il file xls
    ma se io lo voglio salvare come le devo modificare/aggiungere???

    please ditemi anche questo?!?!?!?

    io non me le ricordo più e quando le ho viste questa è stata la mia faccia o.O aiutooooo
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  3. #3
    uppino
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  4. #4
    dai non è cosi difficile...
    per favore aiutoooo
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525
    Prova così...:

    if(ereg("MSIE ([0-9].[0-9]{1,2})", $_SERVER["HTTP_USER_AGENT"])) {

    header("Content-Type: application/octetstream");

    header("Content-Disposition: inline; filename=prova.xls");

    header("Expires: 0");

    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

    header("Pragma: public");

    } else {

    header("Content-Type: application/octet-stream");

    header("Content-Disposition: attachment; filename=prova.xls");

    header("Expires: 0");

    header("Pragma: no-cache");

    }

  6. #6
    ok..grazie mille....cosi ho ottenuto una parte di quello che volevo...

    l'unico problema è che, con le funzioni scritte due o tre post fa, ottengo un file che viene aperto in automatico dal browser e quando lo salvo e lo do in pasto ad excelreader funziona....ma se le funzioni le reindirizzo dentro un file e lo salvo sul server e lo do in pasto a excel reader non funzia piu.....ed è questo che non capisco.....


    se qualcuno ha una idea del perche me lo faccia sapere pleaaaaaaseeee.....

    adesso riordino il codice e ve lo posto qui se puo essere d'aiuto
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  7. #7
    questo è ilcodice spero abbiate capito il mio problema e che riusciate a risolverlo perche io ci sto sbattendo la testa da due giorni......aiuttoooooo


    Codice PHP:
    function xlsBOF2() {return pack("ssssss"0x8090x80x00x100x00x0);}
        function 
    xlsEOF2() {return pack("ss"0x0A0x00);}
        function 
    xlsWriteNumber2($Row$Col$Value) {$c pack("sssss"0x20314$Row$Col0x0); $c .= pack("d"$Value); return $c;}
        function 
    xlsWriteLabel2($Row$Col$Value ) {$L strlen($Value);$c pack("ssssss"0x204$L$Row$Col0x0$L);
        
    $c .= $Value; return $c;}
       
        
        
    $fp fopen("filedioutput.xls""wb+");
        
    fwrite($fpxlsBOF2());
        
    $file file("filechedevoleggereetradurre.xls");
        for(
    $j 0$j count($file); $j++)
        {
          
    $riga explode("\t"$file[$j]);
          for(
    $i 0$i count($riga); $i++)
          {
              
    $riga[$i] = str_replace("\n\r"""$riga[$i]);
              
    $riga[$i] = str_replace("\r\n"""$riga[$i]);
              if((
    $i == || $i == || $i == || $i == || $i == 6) && $j 0)              
                  
    fwrite($fpxlsWriteLabel2($j$i$riga[$i]));
              elseif(
    $j == 0)
                  
    fwrite($fpxlsWriteLabel2($j$i$riga[$i]));
              else      
                  
    fwrite($fpxlsWriteNumber2($j$i$riga[$i]));
              
              
    #xlsWriteLabel($j, $i, $riga[$i]);
          
    }   
        }
        
    fwrite($fpxlsEOF2());
        
    fclose($fp); 
    l'if all'interno del secondo for serve solo per distinguere le colonne che deve scrivere le lettere da quelle che deve scrivere in numero





    aiuuuuutooooo

    (non vorrei sembrare insistente e se lo sono stato chiedo scusa)
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  8. #8
    ho risolto....grazie a tutti....anche se nessuno (tranne uno) mi ha aiutato...ihihihi


    ciao a tuttiiiii
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

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.