2017-01-22 2 views
0

Ich habe eine .xlsx Datei, wo Zellen der Spalte C das Format Date (short) haben. In den Zellen ist ein Datum in diesem Format sichtbar: 30.1.2017.PHPExcel - Zellenformat auf "Datum (kurz)" einstellen und Datum von String einfügen

Wenn Sie die Zellen Format General wechseln werden Sie Zahlen wie diese: 42765.

Ich brauche neue Zeile einzufügen, setzen Sie Format Datum (kurz) auf C-Zelle der neuen Spalte und das Datum einfügen, dass ich habe in der Schnur. Es können keine geeigneten Beispiele gefunden werden. Wie könnte es gemacht werden?

Antwort

0

MS Excel speichert Daten als serialisierten Zeitstempelwert, die Anzahl der Tage seit dem 1. Januar 1900 (oder 1. Januar 1904, wenn auf einem Mac erstellt) ... das ist, was Ihr 42765 Wert ist.

PHPExcel bietet eine Reihe von Funktionen für die Datumsverarbeitung, die in der Klasse PHPExcel_Shared_Date zu finden sind.

Sie können einen Unix-Zeitstempel oder ein PHP-DateTime-Objekt mithilfe der PHPToExcel()-Methode in einen serialisierten MS Excel-Zeitstempel konvertieren. Wenn Sie einen String-Wert für Ihr Datum haben, wandeln Sie ihn zuerst in ein PHP-DateTime-Objekt um. Dann können Sie den Zellenwert auf den resultierenden Zeitstempelwert setzen und eine Zahlenformatmaske anwenden, um Excel mitzuteilen, wie dieses Datum angezeigt werden soll. Das 02types.php Beispiel im Examples Ordner zeigt dies:

$dateTimeNow = time(); 
$objPHPExcel->getActiveSheet() 
    ->setCellValue('C9', PHPExcel_Shared_Date::PHPToExcel($dateTimeNow)); 
$objPHPExcel->getActiveSheet() 
    ->getStyle('C9') 
    ->getNumberFormat() 
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2); 

Und es ist auch in den PHPExcel Documentation

erklärt