Я использую PHPExcel Lib для загрузки таблицы Excel, и мне потребовался формат даты столбца, например, 25 мая-17 вместо 25-05-17 в моей таблице загрузки Excel.
Я смог добавить числовой формат 25-05-17, но не так, как 25 мая 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 мая-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
является Краткое текстовое представление месяца, три буквы с января по декабрь, но с 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');
Обратите внимание, что вы, возможно, захотите проверить и правильно установить локаль, чтобы буква «М» в вашем формате давала английские названия месяцев.