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”为您提供英文的月份名称。