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

Discussione: da html a xls

  1. #1
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554

    da html a xls

    Ciao a tutti io genero dinamicamente un listino in html che si può scaricare, all'atto del download tramite php invio due header di questo tipo:
    codice:
    header("Content-type: application/vnd.ms-excel");
      header("Content-Disposition: attachment; filename=listino.xls");
    facendo questo il file viene salvato come listino.xls tutto bene finchè si utilizza openoffice ma quando si passa a MS excel questo mi fa una conversione di alcuni campi dove io scrivo un numero ad esempio 25.00 in formato data ad esempio 25.00.00 per ovviare a questo ho cercato un pò in giro e ho scoperto che specificando nella colonna STYLE="vnd.ms-excel.numberformat:@" anche il vostro amato MS excel riconosce il campo ma come testo, quindi il risultato finale visivo va bene. Volevo capirne di più su questo STYLE="vnd.ms-excel.numberformat:@" e sapere se qualcuno mi sa dare qualche spiegazione o link
    Vivrò una vita intera e fortunatamente morirò una volta sola

  2. #2
    qui dovresti trovare quel che cerchi

    http://www.iana.org/assignments/media-types/

    ciao!
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  3. #3
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Originariamente inviato da webus
    qui dovresti trovare quel che cerchi

    http://www.iana.org/assignments/media-types/

    ciao!
    La cosa che più mi incuriosiva era STYLE="vnd.ms-excel.numberformat:@"

    Ho trovato un link interessante: http://archive.baarns.com/DevOnly/No...d/Intr9712.asp
    Vivrò una vita intera e fortunatamente morirò una volta sola

  4. #4
    uuh! avevo frainteso la domanda, sorry.

    Rileggendo ora, noto che dici che il tuo file generato viene riconosciuto correttamenete in OpenOffice, ma Excell effettua la conversione dei numeri.

    Io invece ho una esperienza opposta alla tua: il file .xls non mi viene riconosciuto come foglio elettronico, né in OpenOffice, né nel suo porting in Java NeoOfficeJ (entrambi su piattaforma Mac OS X).
    O meglio, entrambi le applicazioni lo riconoscono, ad esempio un doppio click sul file apre NeoOfficeJ, ma invece che come foglio di calcolo me lo apre come testo. La stessa cosa succede aprendolo con OpenOffice in X11.

    Mentre non ho riscontrato problemi sul Excell Win.

    Devo dire che nel file non aggiungo particolari markup, la costruzione della riga è solo:
    codice:
    foreach($row as $value)
    {
    	$value = str_replace('"', '""', $value);
    	$value = '"' . $value . '"' . "\t";
    }
    le header (simili alle tue, credo):
    codice:
    header("Content-type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=statistica.xls");
    header("Pragma: no-cache");
    header("Expires: 0");
    Per farlo riconoscere correttamente anche da OpenOfice c'è qualche markup o segno di formattazione che dovrei aggiungere?
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  5. #5
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Se mi dai un indirizzo mail ti invio il mio listino, basta che lo rinomini html e ti guardi il codice, spero possa esserti utile.
    Vivrò una vita intera e fortunatamente morirò una volta sola

  6. #6
    pvt.

    grazie, ciao!
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  7. #7
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Ti ho mandato tutto in e-mail, gentilmente fammi sapere
    Vivrò una vita intera e fortunatamente morirò una volta sola

  8. #8
    Uuh! Non sapevo che excell supportasse pure html.
    Il documento che producevo io per il download era testo con colonne racchiuse tra virgolette doppie e separate da tab.

    In effetti vedo che ora NeoOfficeJ lo riconosce come foglio di calcolo. Bingo!

    Al momento non ho sottomano una macchina Windows per una controverifica. In caso di problemi ti farò sapere.

    Grazie!

    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  9. #9

    conversione automatica di excel su campi numerici

    anche io ho un problema riguardo la formattazione dei numeri in excel.
    nel mio caso ho una colonna con i numeri di telefono ed excel mi omette automaticamente il primo zero.
    (che è presente nel file csv, quindi è un impostazione di excel).

    ho guardato il link , ma non affronta questo problema


    _________________
    questo è il mio codice:


    $filename="csv2.xls";

    //dico all'header di inviare i dati sotto forma di file excel(type) e di chiedere di salvare il file (disposition)
    //(il programma excel è in grado di interpretare la formattazione a tabelle html)

    //header("Content-type: application/octet-stream"); ???
    header ("Content-Type: application/vnd.ms-excel");
    header ("Content-Disposition: attachment; filename=$filename");
    header("Cache-Control: cache, must-revalidate");
    header("Pragma: public");
    header("Content-Description: Download file");
    header("Expires: 0");

    //trasforma il file CSV (che si aggiorna ogni volta che un utente posta dei dati nel form) in un file XLS
    //apre il file csv
    $handle = fopen("file.csv","r");
    echo"<TABLE >";
    //stampa l'intestazione x il foglio di lavoro excel
    echo"<tr><td>nome</td><td>cognome</td><td>data</td><td>prof</td><td>ordine</td><td>email</td><td>tel</td><td>ente</td><td>
    problematiche dati</td><td>problematiche contributi</td><td>data ins</td></tr>";
    //cicla il file finche ci sono dati
    while ( ($data = fgetcsv($handle, 32768, ",")) !== FALSE)
    {
    $num = count($data);
    $row++;

    echo "<tr>";
    //cicla ogni riga finchè ci sono campi (es: nome,cognome,indirizzo)
    for ($c=0; $c < $num; $c++) {
    echo "<td>";
    //stampa i dati , ordinati in celle e righe
    echo $data[$c] ;

    echo "</td>";
    }
    echo "</tr>";

    }
    echo "</table>";
    fclose($handle);

  10. #10
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Secondo me devi usare STYLE="vnd.ms-excel.numberformat:@" sulla colonna che corrisponde al numero di telefono, ovviamente adattandolo al tuo caso, adesso non ho office a portata disponibile, ad esempio potrebbe essere STYLE="vnd.ms-excel.text" ma devi controllare e fare delle prove.
    Vivrò una vita intera e fortunatamente morirò una volta sola

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.