Attualmente sto realizzando un programma per il mio lavoro che utilizza PHPexcel per prelevare fondamentalmente tutti i dati da un foglio Excel, creare un nuovo foglio Excel e formattarlo in testo e trasferire tutto i dati dal vecchio foglio excel.PHPExcel, Data analizzata erroneamente
Il mio php deve essere in grado di acquisire i valori dal vecchio foglio excel e analizzarli correttamente, in particolare date/numeri/ecc.
Tutto funziona bene tranne le date. Per qualche motivo quando ottengo il valore formattato della cella; non corrisponde al formato della data nel primo foglio. Specificamente un valore come questo: 31/12/2099. Per qualche ragione, legge il codice di formattazione in modo errato come mm-dd-yy e output 12-31-99. Questo è estremamente frustrante e ho setacciato metà di internet per una risposta. Aiuto per favore; Non sono sicuro di quale sia il problema! Codice:
<?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 è una cella con il formato DATE e un valore di 12/31/2099. Questo codice stampa 12-31-99 ...
Prova getValue() al posto di getFormattedValue() – aynber
getValue() ottiene il valore dei dati non elaborati della cella e restituisce un valore float. –
Da quello che posso dire qui (http://phpexcel.codeplex.com/discussions/371418) dovresti essere in grado di utilizzare Date :: Time per convertirlo nel formato data desiderato. – aynber