我想在网络中的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中。 TNX。
答案 0 :(得分:4)
这是一个Excel时间戳值,一个包含自19/1/19以来天数的浮点数(如果电子表格文件设置为使用Mac日历而不是Windows日历,则为1/1/1904)。
使用
$cell->getFormattedValue();
将根据单元格格式掩码将值返回为格式化为日期的字符串。
或者,您可以使用PHPExcel_Shared_Date::ExcelToPHP()
或PHPExcel_Shared_Date::ExcelToPHPObject()
方法将Excel浮点值转换为unix时间戳或PHP DateTime对象,然后使用适当的PHP函数/方法生成字符串您喜欢的日期格式