PHPExcel 日期需要 dd/MM/yy

问题描述 投票:0回答:4

我正在使用 PHPExcel Lib 下载 Excel 工作表,并且在我下载的 Excel 工作表中需要列日期格式,例如 25-May-17,而不是 25-05-17。

我能够添加数字格式 25-05-17,但不像 25-May-17,下面是我的代码。

      $objPHPExcel->getActiveSheet()
    ->getStyle('V'.$i)
    ->getNumberFormat()
    ->setFormatCode(
        PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY
    );

我在 Lib 类中找不到常量

const FORMAT_DATE_YYYYMMDD2 = 'yyyy-mm-dd';
const FORMAT_DATE_YYYYMMDD = 'yy-mm-dd';
const FORMAT_DATE_DDMMYYYY = 'dd/mm/yy';
const FORMAT_DATE_DMYSLASH = 'd/m/y';
const FORMAT_DATE_DMYMINUS = 'd-m-y';

有人可以帮我设置日期,例如 d-M-yy(25-May-17)吗?

php excel phpexcel date-formatting
4个回答
4
投票

您不受预定义常数的限制;这些只是 MS Excel 识别的一些格式字符串...可能的掩码的全面列表会过多...并且不必要...您要做的就是将字符串值传递给

setFormatCode()
方法,这样您就可以传递字符串文字。

您想要的格式的 MS Excel 掩码是

dd-mmm-yyyy
,您可以将其简单地设置为字符串文字,而不是使用任何常量:

$objPHPExcel->getActiveSheet()
    ->getStyle('V'.$i)
    ->getNumberFormat()
    ->setFormatCode('dd-mmm-yyyy');

请注意,MS Excel 本身有一个数字格式代码的“自定义”选项,它允许您以完全相同的方式设置字符串文字


0
投票

源代码显示:

const FORMAT_DATE_DMYMINUS                = 'd-M-Y';

M
月份的简短文本表示,三个字母 Jan 到 Dec,但使用
Y
,您仍然会得到 4 位数的年份。

为什么不直接传递你的格式

d-M-y

$objPHPExcel->getActiveSheet()
    ->getStyle('V'.$i)
    ->getNumberFormat()
    ->setFormatCode('d-M-y');

0
投票

您可以直接在代码中使用所需的格式,而不是使用可通过 PHPExcel_Style_NumberFormat 常量访问的预定义格式之一。

$objPHPExcel->getActiveSheet()
    ->getStyle('V'.$i)
    ->getNumberFormat()
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY);

将变成:

$objPHPExcel->getActiveSheet()
    ->getStyle('V'.$i)
    ->getNumberFormat()
    ->setFormatCode('d-M-yy');

请注意,您可能需要检查并正确设置您的区域设置,以便格式中的“M”为您提供英语月份名称。


0
投票
$objPHPExcel->getActiveSheet()->getStyle('V'.$i)->getNumberFormat()->setFormatCode('d-M-y'); 

我使用相同的,但它仍然显示自定义而不是日期

© www.soinside.com 2019 - 2024. All rights reserved.