PHPExcel, Datum wird falsch analysiert

Derzeit mache ich ein Programm für meine Arbeit verwendet, PHPexcel, um im Grunde nehmen die sich alle die Daten aus einer excel-Tabelle, erstellen Sie eine neue excel-Tabelle und formatieren Sie text, und übertragen Sie die Daten aus dem alten excel-Blatt.

Meine php muss in der Lage sein in der Werte aus der alten excel-sheet und analysieren Sie Sie korrekt vor allem Daten/zahlen/etc.

Alles ist in Ordnung, außer für die Termine. Aus irgendeinem Grund, wenn ich den formatierten Wert der Zelle; es entspricht nicht der Datum-format in das erste Blatt. Insbesondere ein Wert wie dieser: 12/31/2099 . Aus irgendeinem Grund liest er den formatcode fälschlicherweise als mm-dd-yy und Ausgänge 12-31-99. Das ist extrem frustrierend und ich habe durchforstet halbe internet nach einer Antwort. Hilfe bitte; ich bin mir nicht sicher, was das Problem ist! Code:

<?php
$spreadSheet=$_FILES["filebrowser"]["tmp_name"];
/** PHPExcel_IOFactory */
require_once 'Classes/PHPExcel/IOFactory.php';
require_once 'Classes/PHPExcel/Shared/Date.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
//Create temporary sheet from uploaded file data
$objPHPExcel = $objReader->load($spreadSheet);
$sheet = $objPHPExcel->getActiveSheet();
$sheet->setTitle("Original Data");
$data=$sheet->getCell("D9")->getFormattedValue();

var_dump($data);
exit;?>

D9 ist eine Zelle mit Datumsformat und ein Wert von 12/31/2099. Dieser code druckt 12-31-99...

Versuchen getValue() anstelle von getFormattedValue()
getValue() liefert den raw-Daten Wert von Zelle und gibt einen float.
Was ich sagen kann, hier (phpexcel.codeplex.com/discussions/371418) Sie sollten in der Lage sein, dann verwenden Sie Datum: Zeit zum konvertieren von Datum-format, das Sie möchten.
Ja, aber wenn ich den format-code aus der Zelle, gibt es eine format-code von mm-dd-yy, anstatt das richtige format... Also, wenn ich versuche, so etwas zu tun, funktioniert es nicht: $s= $sheet->getCell("D9")->getValue(); $d=PHPExcel_Shared_Date::ExcelToPHP($s); $form=$sheet->getStyle("D9")->getNumberFormat()->getFormatCode(); var_dump(date($form,$d));
das ist Teil des Problems, ich kann es nicht explizit definieren Sie das format für die Benutzer, ich brauche das format um in der Lage sein, um ein Allgemeines basierend auf was der Benutzer gegeben hat, die über excel.

InformationsquelleAutor Joseph Amato | 2013-07-11

Schreibe einen Kommentar