1

我想在网络中输出我的 excel 文件中的数据。excel 中的一个单元格被格式化为日期,并在输出时返回如下:

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 db 中。肿瘤坏死因子。

4

1 回答 1

4

它是一个 Excel 时间戳值,一个包含自 1900 年 1 月 1 日(如果电子表格文件设置为使用 Mac 日历而不是 Windows 日历,则为 1904 年 1 月 1 日)以来的天数的浮点数。

使用

$cell->getFormattedValue();

将根据单元格格式掩码将值作为格式化为日期的字符串返回。

PHPExcel_Shared_Date::ExcelToPHP()或者,您可以使用or方法将 Excel 浮点值转换为 unix 时间戳或 PHP DateTime 对象PHPExcel_Shared_Date::ExcelToPHPObject(),然后使用适当的 PHP 函数/方法以您喜欢的任何日期格式生成字符串

于 2013-07-12T09:20:26.557 回答