PHPExceldate要求dd / MM / yy

我正在使用PHPExcel Lib来下载Excel工作表,并且需要像25-May-17那样的列date格式,而不是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 = 'dm-y'; 

可以请一些人帮我在这里设定date,如dM-yy(25-May-17)?

你不受预定义常量的限制; 这些只是MS Excel识别的格式string的一部分…一个可能的掩码的完整列表将是过度的…和不必要的…你所做的只是传递一个string值到setFormatCode()方法,所以你可以传递一个string文字。

所需格式的MS Excel掩码是dd-mmm-yyyy ,您可以将其设置为string文本而不是使用任何常量:

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

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

源代码显示:

 const FORMAT_DATE_DMYMINUS = 'dM-Y'; 

M一个月的简短文字表示,三个字母从一月到十二月 ,但是对于Y你仍然会得到一个四位数的年份。

为什么不把你的格式dMy

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

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

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

会成为:

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

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