PHPExcel - 将单元格格式设置为"日期(短)"并从字符串插入日期

时间:2017-01-22 14:46:21

标签: excel-2007 cell phpexcel date-formatting

我有一个.xlsx文件,其中C列的单元格格式为Date (short)。在单元格中可以看到这种格式的日期:30.1.2017

如果您将单元格格式切换为General,您会看到如下数字:42765。

我需要插入新行,在新列的C单元格上设置格式Date(短)并在字符串中插入我的日期。找不到合适的例子。怎么可能呢?

1 个答案:

答案 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);

PHPExcel Documentation

中也有解释