我有一个.xlsx文件,其中C列的单元格的格式为Date (short)
。在单元格中以这种格式显示日期:30.1.2017
。PHPExcel - 将单元格格式设置为“Date(short)”并从字符串中插入日期
如果切换单元格式General
你会看到数字是这样的:42765.
我需要插入新列的C单元新的生产线,设置格式的日期(短)和插入日期,我有字符串。找不到合适的示例。它怎么能做到?
我有一个.xlsx文件,其中C列的单元格的格式为Date (short)
。在单元格中以这种格式显示日期:30.1.2017
。PHPExcel - 将单元格格式设置为“Date(short)”并从字符串中插入日期
如果切换单元格式General
你会看到数字是这样的:42765.
我需要插入新列的C单元新的生产线,设置格式的日期(短)和插入日期,我有字符串。找不到合适的示例。它怎么能做到?
MS Excel将日期存储为序列化的时间戳值,自1900年1月1日以来的天数(或1904年1月1日,如果在Mac上创建)的计数......这就是您的42765
值。
PHPExcel提供了许多日期处理函数,可以在PHPExcel_Shared_Date
类中找到。
您可以使用PHPToExcel()
方法将unix时间戳或PHP DateTime对象转换为MS Excel序列化时间戳。如果您的日期有字符串值,请先将其转换为PHP DateTime对象。 然后,您可以将单元格值设置为生成的时间戳值,并应用数字格式掩码来告诉Excel应如何显示该日期。在Examples文件夹中的02types.php例子说明了这一点:
$dateTimeNow = time();
$objPHPExcel->getActiveSheet()
->setCellValue('C9', PHPExcel_Shared_Date::PHPToExcel($dateTimeNow));
$objPHPExcel->getActiveSheet()
->getStyle('C9')
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
而且它也是在PHPExcel Documentation
解释