PhpExcel

Nouveau WRInaute
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>';
 
?>
 
Nouveau WRInaute
UsagiYojimbo a dit:
Peut être regarder avec les méthodes de gestion de format de la classe http://www.developpez.net/forums/d1139184/php/bibliotheques-frameworks/bureautique/phpexcel-format-date-pris-string/

oui j'avais trouvé cela aussi mais j'arrive pas à l'utiliser, si quelqu'un sait faire et peut m'expliquer je suis prenneuse !
 
Nouveau WRInaute
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 !
 
Haut