我知道有很多类似的问题,但他们都没有帮助。 我在我的Excel文件中有一个单元格,我必须阅读。phpexcel日期是读取错误的格式
和Excel文件格式是像下面Date Format In Excel
在我的PHP代码我有它在获取工作表名称和单元以读取细胞的功能。
$cellDate = $xls->getSheetByName($sheet)->getCell($cell)->getValue();
我也试图与getFormattedValue(),并得到了相同的结果
我然后用这个
$format = $xls->getSheetByName($sheet)->getCell($cell)->getStyle()->getNumberFormat()->getFormatCode();
得到的格式,当我在PHP呼应了这一点,就说明日期为
13/4/2015
以及它显示的格式
mm-dd-yyyy
它显示为DD-MM-YYYY
我现在需要得到这些我已经使用PHPExcel所有可用的功能试图Y-M-d格式,但它仍是结果是不正确的。
我不能硬编码的格式,因为有多个小区多种格式,我需要这本身了解
我已经使用
$objPHPExcel->getActiveSheet()
->getStyle('A1')
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
我真的需要这一点,我尝试”已经浪费了一周的时间。
有无论如何告诉PHPEXCEL解析单元格中的任何日期为Y-m-d格式吗?
UPDATE
,因为我是通过我回去,并检查我写的函数的评论阅读,我发现这些细胞[甚至],它的格式在Excel中它的解析错误的格式在一个该案件是一般格式;
然后,我得到了getValue()和getFormattedValue()的值,并将这两个值进行比较,如果它们不相同,则表示格式正确,我可以使用PHPExcel从中获取日期。
但是,(总有一个但是)。感谢微软和它的卓越,我仍然无法区分2016年2月1日和1月2日!这永远是问题。
我唯一的建议是永远不要信任excel格式!
'感谢微软及其excel' ....严格来说,这里不是Microsoft或Excel的错;它是以字符串值输入日期而不是让MS Excel使用自己的内部序列化日期/时间值的用户 –