Мне нужно зациклиться от Cell V1 до Custom HA1 для DATES. Вот как это сделать вручную:
$objPHPExcel->getActiveSheet()->SetCellValue('V1', '2015-11-29');
$objPHPExcel->getActiveSheet()->SetCellValue('W1', '2015-11-30');
$objPHPExcel->getActiveSheet()->SetCellValue('X1', '2015-12-01');
$objPHPExcel->getActiveSheet()->SetCellValue('Y1', '2015-12-02');
$objPHPExcel->getActiveSheet()->SetCellValue('Z1', '2015-12-03');
$objPHPExcel->getActiveSheet()->SetCellValue('AA1', '2015-12-04');
Но это, очевидно, слишком много кода. и обратите внимание, что я не могу использовать любую другую функцию, а затем SetCellValue, поскольку до этого еще 20 значений ячеек. Мне нужно зацикливать даты от CELL V1 2015-11-29
до CELL HA1 2016-06-04
как я могу это сделать?
Это не особенно метод PHPExcel, просто стандартный подход PHP к циклу
Вам просто нужно создать цикл из столбца V
в столбец HA
и увеличить адрес столбца и значение даты каждой итерации
$startColumn = 'V';
$endColumn = 'HA';
$date = new DateTime('2015-11-29');
$interval = new DateInterval('P1D');
$endColumn++;
for($column = $startColumn; $column !== $endColumn; $column++) {
$objPHPExcel->getActiveSheet()
->SetCellValue($column.'1', $date->format('Y-m-d'));
$date->add($interval);
}
Тем не менее, вы действительно должны использовать значения MS Serialized Date/Time для дат и задавать маску форматирования для отображения значений в качестве дат:
$startColumn = 'V';
$endColumn = 'HA';
$lastColumn = $endColumn;
$date = new DateTime('2015-11-29');
$interval = new DateInterval('P1D');
$endColumn++;
for($column = $startColumn; $column !== $endColumn; $column++) {
$objPHPExcel->getActiveSheet()
->SetCellValue(
$column.'1',
PHPExcel_Shared_Date::PHPToExcel($date)
);
$date->add($interval);
}
$objPHPExcel->getActiveSheet()
->getStyle($startColumn.'1:'.$lastColumn.'1')
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);