1. Lutin1801
    Lutin1801 Nouveau WRInaute
    Inscrit:
    18 Mai 2012
    Messages:
    3
    J'aime reçus:
    0
    Bonjour,

    alors, je lis grace à mon code php un fichier excel et je l'affiche tout simplement, sauf que les dates comme par exemple '16/05/2004' sont retranscrites sous cette forme '38123', c'est donc un problème de format !
    savez vous comment je peux modifier cela ?

    Code:
    <?php	// Code de lecture d'un fichier excel a plusieur colonnes et lignes
     
    	require_once './PHPExcel/Classes/PHPExcel/IOFactory.php';
     
    	// Chargement du fichier Excel
    	$objPHPExcel = PHPExcel_IOFactory::load("TestDate.xls");
     
    	/**
    	* récupération de la première feuille du fichier Excel
    	* @var PHPExcel_Worksheet $sheet
    	*/
    	$sheet = $objPHPExcel->getSheet(0);
     
    	// Afficher la ligne 1, trouver les colonnes qui nous intéressent
    	$ligne = 0;
    	$cpt = 0;
     
    	// On boucle sur les lignes
    	foreach($sheet->getRowIterator() as $row) {
    		// On boucle sur les cellule de la ligne 1
    		foreach ($row->getCellIterator() as $cell) {
    			if ($ligne == 0){
    				$var = $cell->getValue();
     
    				if ($var == 'Code materiel'){			$tab['n26E'] = $cpt;	}
    				if ($var == 'Date Livraison'){			$tab['dLivr'] = $cpt;	}
     
    				$cpt++;
    			}
    		}
    		$ligne++;
    	}
     
     
     
    	// Afficher juste les colonnes que l'on veut !
    	echo '<table border="1">';
    	$ligne = 0;
    	$cpt = 0;
     
    	// On boucle sur les lignes
    	foreach($sheet->getRowIterator() as $row) {
    		echo '<tr>';
    		$cpt_c =0;
     
    		// On boucle sur les cellule de la ligne
    		foreach ($row->getCellIterator() as $cell) {
    			echo '<td>';
    			if ($cpt_c == 32){
    				print_r($cell->getValue());
    				$tab[$ligne]['n26E'] = $cell->getValue();
    			}
     
    			if ($cpt_c == 49){
    				print_r($cell->getValue());
    				$tab[$ligne]['dLivrais'] = $cell->getValue();
    			}
     
    			echo '</td>';
    			$cpt++;
    			$cpt_c++;
    		}
    		echo '</tr>';
    		$ligne++;
    	}
    	echo '</table>';
     
    ?>
     
  2. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 974
    J'aime reçus:
    121
  3. Lutin1801
    Lutin1801 Nouveau WRInaute
    Inscrit:
    18 Mai 2012
    Messages:
    3
    J'aime reçus:
    0
    oui j'avais trouvé cela aussi mais j'arrive pas à l'utiliser, si quelqu'un sait faire et peut m'expliquer je suis prenneuse !
     
  4. Lutin1801
    Lutin1801 Nouveau WRInaute
    Inscrit:
    18 Mai 2012
    Messages:
    3
    J'aime reçus:
    0
    Bon alors j'ai trouvé toute seule, pour ceux que ca interesse :

    j'ai donc mis la date dans la variable $date = $tab[$ligne]['dLivrais'] (ligne 56)

    alors excel renvois un nombre de jour écoulé depuis 1900
    et la fonction mktime de php prend en parametre

    int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

    ie mktime (heure, minute, seconde, mois, jour, annee)

    donc 0 heure, 0 minute, 0 seconde, 1 mois (car on commence au premier mois janvier), $date-1 (c'est notre nombre de jour renvoyer par excel, -1 car excel commence a un et php à 0), 1900 (car c'est l'année a partir de la quelle on veut qu'il compte)

    => mktime(0,0,0,1, $date-1, 1990)

    on obtient le nombre de jour écoulé depuis 1900 mais au format php

    pour mettre notre date sous une forme agréable on utilise la fonction date

    string date ( string $format [, int $timestamp = time() ] )

    ie date(un formatde date, un nombre de jour écoulé)

    donc date("d/m/y", mktime(0,0,0,1, $date-1, 1990));


    et voila il n'y a plus qu'a afficher !