Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Bureautique
Bureautique Forum d'entraide sur la gestion dynamique de documents de bureautique (Word, Excel, OpenOffice...) avec PHP. Avant de poster -> Cours Excel, FAQ OpenXML, FAQ OpenDocument
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/10/2011, 15h39   #1
Membre du Club
 
Inscription : mars 2005
Messages : 217
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : mars 2005
Messages : 217
Points : 54
Points : 54
Par défaut [phpexcel] format de date pris en string

Bonjour,

Je génère un fichier excel en PHP avec l'excellente librairie PHPExcel...
Par contre j'ai un petit soucis : dans une cellule j'écris une date sous forme 'dd/mm/yyyy' et dans une autre 'dd/mm/yyyy hh:mm'.
Le souci c'est que dans excel, quand j'ouvre mon fichier dans la barre de formule ma cellule est vue comme une string avec un ' devant.
Et donc si je fais un tri ou autre, forcément ca marche pas...
Comment on peut faire pour lui dire que c'est une date voire datetime et pas du string ?
Merci de votre aide.
__________________
Jérôme
jejeman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 11h11   #2
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Salut,

tu dois utiliser la méthode setFormatCode de la classe PHPExcel_Style_NumberFormat.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 14h11   #3
Membre du Club
 
Inscription : mars 2005
Messages : 217
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : mars 2005
Messages : 217
Points : 54
Points : 54
Bonjour,
Merci pour ta réponse, mais j'avais déjà essayé et ça ne change rien...
Ma date est de la forme dd/mm/yyyy et j'ai fait :
Code :
$sheet->getStyle('E1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY);
Et dans le fichier excel, la date est toujours vu comme une string donc avec un ' devant...
Une autre idée ?
Merci.
__________________
Jérôme
jejeman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 16h42   #4
Invité de passage
 
Inscription : décembre 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 1
Points : 1
Points : 1
Bonjour,

En fait il faut récupérer la valeur flottante de ta date avant de la mettre dans la cellule.
Cela donne par exemple :
Code :
1
2
3
4
$date = explode("/",$date);
$time = PHPExcel_Shared_Date::FormattedPHPToExcel($date[0], $date[1], $date[2]);
$sheet->setCellValue('E1', $time);
$sheet->getStyle('E1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY);
fastdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h02.


 
 
 
 
Partenaires

Hébergement Web