我正在使用 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)吗?
您不受预定义常数的限制;这些只是 MS Excel 识别的一些格式字符串...可能的掩码的全面列表会过多...并且不必要...您要做的就是将字符串值传递给
setFormatCode()
方法,这样您就可以传递字符串文字。
您想要的格式的 MS Excel 掩码是
dd-mmm-yyyy
,您可以将其简单地设置为字符串文字,而不是使用任何常量:
$objPHPExcel->getActiveSheet()
->getStyle('V'.$i)
->getNumberFormat()
->setFormatCode('dd-mmm-yyyy');
请注意,MS Excel 本身有一个数字格式代码的“自定义”选项,它允许您以完全相同的方式设置字符串文字
源代码显示:
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');
您可以直接在代码中使用所需的格式,而不是使用可通过 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”为您提供英语月份名称。
$objPHPExcel->getActiveSheet()->getStyle('V'.$i)->getNumberFormat()->setFormatCode('d-M-y');
我使用相同的,但它仍然显示自定义而不是日期