2017-05-25 1 views
1

Ich benutze PHPExcel Lib zum Download Excel-Blatt und habe die Spalte Datumsformat wie 25-Mai-17 anstelle von 25-05-17 in meinem Excel-Datenblatt herunterladen.PHPExcel Datum erforderlich TT/MM/JJ

Ich konnte Nummernformat 25-05-17 hinzugefügt, aber nicht wie 25-Mai-17 und unten ist mein Code wie.

 $objPHPExcel->getActiveSheet() 
    ->getStyle('V'.$i) 
    ->getNumberFormat() 
    ->setFormatCode(
     PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY 
    ); 

ich die Konstante in Lib Klasse nicht finden kann

const FORMAT_DATE_YYYYMMDD2 = 'yyyy-mm-dd'; 
const FORMAT_DATE_YYYYMMDD = 'yy-mm-dd'; 
const FORMAT_DATE_DDMMYYYY = 'dd/mm/yy'; 
const FORMAT_DATE_DMYSLASH = 'd/m/y'; 
const FORMAT_DATE_DMYMINUS = 'd-m-y'; 

Können einige bitte auf das mir helfen, das Datum einzustellen, wie d-M-yy (25-May-17) ?.

Antwort

1

Sie sind nicht durch die vordefinierten Konstanten eingeschränkt; Das sind nur einige der Formatzeichenfolgen, die MS Excel erkennt ... eine umfassende Liste von immer möglichen Masken wäre übertrieben .... und unnötig ... alles, was Sie tun, ist die Übergabe eines Zeichenfolgenwerts an die setFormatCode() Methode, also Sie können ein Zeichenfolgenliteral übergeben.

Die MS Excel-Maske für das Format, das Sie wollen, ist dd-mmm-yyyy, und Sie können vielmehr, dass einfach als Stringliteral eingestellt als unter Verwendung eines beliebigen Konstante:

$objPHPExcel->getActiveSheet() 
    ->getStyle('V'.$i) 
    ->getNumberFormat() 
    ->setFormatCode('dd-mmm-yyyy'); 

Beachten Sie, dass MS Excel selbst eine „custom“ hat Option für Zahlenformatcodes, mit denen Sie ein Zeichenkettenliteral auf die gleiche Weise setzen können

+0

Danke Mark, Du hast meine Zeit gerettet –

+0

Hey Mark, ich konnte in meinem Zellenwert wie 25.04.17 hinzugefügt werden, aber Bindestrich (-) ist verpasst, kannst du mir bitte sagen, wie man - anstelle von Leerzeichen –

+0

sollte es ein zeigen Strich genau wie ich gezeigt habe; aber du könntest immer versuchen, es mit einem '\\' –

0

Die source code zeigt:

const FORMAT_DATE_DMYMINUS    = 'd-M-Y'; 

MEine Darstellung eines Monats kurze Text ist, drei Buchstaben Jan durch Dezember, aber mit Y werden Sie noch eine 4-stellige Jahr.

Warum nicht einfach Ihr Format d-M-y übergeben?

$objPHPExcel->getActiveSheet() 
    ->getStyle('V'.$i) 
    ->getNumberFormat() 
    ->setFormatCode('d-M-y'); 
+0

Hey Abra, ich hatte dMy übergeben aber es ist wie 25-05-y zurück, das war mein Problem. Ich weiß nicht, warum es so zurückkommt. –

0

Sie könnten Ihr gewünschtes Format direkt im Code verwenden, anstatt eines der vordefinierten Formate zugänglich mit den Konstanten PHPExcel_Style_NumberFormat verwenden.

$objPHPExcel->getActiveSheet() 
    ->getStyle('V'.$i) 
    ->getNumberFormat() 
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY); 

würde:

$objPHPExcel->getActiveSheet() 
    ->getStyle('V'.$i) 
    ->getNumberFormat() 
    ->setFormatCode('d-M-yy'); 

Beachten Sie, dass Sie Ihren Ort möchten vielleicht richtig überprüfen und so eingestellt, dass das „M“ im Format Sie Englisch Monatsnamen gibt.