Php Excel lire une date [Résolu]

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Invité

Php Excel lire une date [Résolu]

Message par Invité »

Bonjour a tous,

Je voudrais lire une date contenu dans un fichier Excel avec du code PHP, pour cela j'utilise la librairie PHPExcel mais voyez vous, j'arrive a lire tous les cases comme il faut, suf les cases contenant des dates.
En effet, les dates telles que '16/05/2004' sont retranscrites sous cette forme '38123', que dois je faire pour les avoir dans le bon format ?

je vous mets mon code de lecture de fichier

Code : Tout sélectionner

<?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>';
 
?>
Invité

Re: Php Excel lire une date

Message par Invité »

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 !
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités