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



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

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

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

MS Excel 将日期存储为序列化时间戳值,这是自 1900 年 1 月 1 日(如果在 Mac 上创建,则为 1904 年 1 月 1 日)以来的天数...这就是你的42765价值。

PHPExcel 提供了许多用于日期处理的函数,这些函数可以在 PHPExcel_Shared_Date 类中找到。

您可以使用 PHPToExcel() 方法将 unix 时间戳或 PHP 日期时间对象转换为 MS Excel 序列化时间戳。如果您有日期的字符串值,请先将其转换为 PHP DateTime 对象。然后,您可以将单元格值设置为生成的时间戳值,并应用数字格式掩码以告知 Excel 应如何显示该日期。示例文件夹中的 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 文档中也有解释

最新更新