2013-07-12 68 views
1

我想輸出在我的excel文件在網絡中的數據。 Excel中的一個單元格格式化爲日期,並在輸出時如此返回:如何在PHPExcel中將日期格式的單元格格式化?

A000001 | John Doe  | DR | 41456 | 41465<-- // this should be date 
A000002 | Philip Moris | CP | 41456 | 41465  // formatted as yyyy-mm-dd 



require_once("controller/xls/Classes/PHPExcel/IOFactory.php"); 
$objPHPExcel = PHPExcel_IOFactory::load($filer); 
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) 
{ 
    $worksheetTitle  = $worksheet->getTitle(); 
$highestRow   = $worksheet->getHighestRow(); // e.g. 10 
$highestColumn  = $worksheet->getHighestColumn(); // e.g 'F' 
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
$nrColumns = ord($highestColumn) - 64; 

echo '<table>'; 
for ($row = 5; $row <= $highestRow; ++ $row) 
{ 
echo '<tr>'; 
    for ($col = 1; $col < $highestColumnIndex; ++ $col) 
    { 
    $cell = $worksheet->getCellByColumnAndRow($col, $row); 
    $val = $cell->getValue(); 
    echo '<td>'.$val.'</td>'; 
    } 
echo '</tr>'; 
} 
echo '</table>'; 
} 

它是unix時間嗎?如果是這樣,當我使用getCellByColumnAndRow時,如何格式化它?我也將這個存儲在MySQL數據庫。 TNX。

回答

4

這是一個Excel時間戳值,其中包含自從1/1/1900以來的天數(或者如果電子表格文件設置爲使用Mac日曆而不是Windows日曆,則爲1/1/1904)。

使用

$cell->getFormattedValue(); 

將返回值作爲根據細胞格式掩碼格式爲日期的字符串。

或者,也可以將Excel浮點值轉換爲Unix時間戳或使用PHPExcel_Shared_Date::ExcelToPHP()PHPExcel_Shared_Date::ExcelToPHPObject()方法,然後使用適當的PHP函數/方法產生的任何日期格式你喜歡

一個字符串PHP DateTime對象
+0

非常感謝你 – mmr

+1

PHPExcel真棒! :) – periback2