gpt4 book ai didi

PHPExcel将字符串日期放入.xls

转载 作者:行者123 更新时间:2023-12-04 21:54:41 28 4
gpt4 key购买 nike

伙计们。我在 DB 有日期作为字符串“d/m/Y”。
当我将此日期输入 Excel 时,它会显示正常日期,例如 2000 年 3 月 10 日,但是当我单击单元格时,它会显示值 '03/10/2000 .因此,该值是字符串,而不是我需要的日期。

因此,我将日期从 DB 转换为 PHP 日期对象并确定 var_dump该日期是具有该代码的日期对象:

$date = date_create_from_format('d/m/Y', $array[$i-20]['Date']);
$date->format('m/d/Y');

但无论如何,生成的 .xls 中的值是 '在值(value)之前。

为什么会出现,我该如何解决?

最佳答案

MS Excel 将日期存储为序列化时间戳,即自 1900 年 1 月 1 日(或 1904 年 1 月 1 日,如果使用 Mac 日历)以来的天数。要将值存储为日期(而不仅仅是字符串),您需要将字符串日期转换为序列化时间戳,然后设置单元格的格式掩码。

$date = date_create_from_format('d/m/Y', $array[$i-20]['Date']);
$excelDate = PHPExcel_Shared_Date::PHPToExcel($date);

将 $excelDate 设置为单元格值
$objPHPExcel->getActiveSheet()->setCellValue('C11', $excelDate );

然后将格式掩码应用于该单元格
$objPHPExcel->getActiveSheet()
->getStyle('C11')
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);

02types.php `/Examples` folder 中的示例脚本证明了这一点

编辑

您可以(并且更有效)将样式应用于一系列单元格:只需在 getStyle() 中指定范围即可。称呼。
$objPHPExcel->getActiveSheet()
->getStyle('C11:C200')
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);

获取可用格式的详细信息:PHPExcel 内置了许多预定义的格式,可以在 Classes/PHPExcel/Style/NumberFormat.php 中以常量形式找到这些格式。 .但是,您不仅限于该组格式;并且(与 MS Excel 允许您定义“自定义”格式的方式相同)您可以使用几乎任何 rules that can be used for MS Excel number format masks 中的任何一个简单地传递定义格式的字符串(例如“d-mmm-yyyy”)。作为格式

关于PHPExcel将字符串日期放入.xls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47263374/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com