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