Visualizzazione dei risultati da 1 a 5 su 5

Discussione: export su excel

  1. #1
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489

    export su excel

    ciao a tutti,

    ho questo problema con l'export da php a excel e non so come uscirne:
    ho predisposto un codice che mi permette la visualizzazione php di una tabella numerica organizzata in tre colonne principali. l'output è perfetto, proprio quello che desideravo (... o perlomeno cosi credo, visto che successivamente ho il problema accennato). A questo punto predispongo il codice per esportare la tabella (i dati) in un file xls (excel)tutto sembra ok: il layout è come lo desideravo e il formato delle celle corrisponde al volore contenuto eccetto per una colonna: il valore (i numeri sono corretti) è il prodotto di una moltiplicazione che nel codice formato con "number_format"(es 10.50), però la cella è formattata su "ora:minuti". non riesco a capire perchè.
    ecco la porzione di codice:

    Codice PHP:
    $subtot $ore[$i+($j $rs)] * $valore[$i+($j $rs)]; //moltiplicazione
    echo "<td>"$data[$i+($j $rs)] ."</td>";                                 
    echo 
    "<td>"number_format($ore[$i+($j $rs)],2,",","") ."</td>"//presenza 
    echo "<td>"number_format($valore [$i+($j $rs)],2",","") ."</td>"//quota
    echo "<td>".$subtot."</td>\n";//subtot
    $tot[] =$subtot;
    $pres[] = $ore[$i+($j $rs)]; 
    relativamente ai tre commenti: presenza, quota subtot, le celle dei primi due in excel sono numerici invece subtot mi viene fuori come "data" anche se il valore riportato corrisponde al risultato della moltiplicazione.
    mi date una mano?

  2. #2
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    up

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova a fare un number_format anche sulla variabile $subtot
    ho la sensazione che glielo stai passando con il punto invece che con la virgola e excel lo interpreti come un dato di tipo ora.

  4. #4
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    hai ragione.
    con number_format() su $subtot il valore viene riportato come numero, però accade una cosa che non riesco a capire se non uso number_format() il totale finale mi viene fuori perfetto.

    se uso number_format() mi viene fuori un dato che non corrisponde
    Codice PHP:
    $totalefinale array_sum($tot); 
    $totalefinale =(number_format($totalefinale,2,",","")); 
    echo 
    "
    totale euro: " 
    .$totalefinale
    la diefferenza sono proprio i decimali, cioè la somma dei decimali
    quindi la riga:
    $tot[]=$subtot; è sbagliata perche l'array assegna solo il numero intero
    come faccio a caricare l'array correttamente con la virgola?

  5. #5
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    ho risolto cosi:
    Codice PHP:
    $subtot str_replace(",","."$subtot);
    $tot[]=$subtot
    mi sembra che funzioni alla perfezione
    grazie per l'aiuto

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.