来自自定义单元格的PHPExcel循环SetCellValue
我需要从单元格V1循环到单元格HA1自定义日期周期。以下是一种手动方式:来自自定义单元格的PHPExcel循环SetCellValue,php,phpexcel,Php,Phpexcel,我需要从单元格V1循环到单元格HA1自定义日期周期。以下是一种手动方式: $objPHPExcel->getActiveSheet()->SetCellValue('V1', '2015-11-29'); $objPHPExcel->getActiveSheet()->SetCellValue('W1', '2015-11-30'); $objPHPExcel->getActiveSheet()->SetCellValue('X1', '2015-12-01'
$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个单元格值。
我需要循环从2015-11-29<代码>单元格V1到2016-06-04<代码>单元格HA1的日期,我该怎么做?这不是一种特殊的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序列化日期/时间值作为日期,并设置格式掩码以将值显示为日期:
$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);
一般问题:当您可能应该存储MS Excel序列化的日期时间值并设置格式时,为什么要将日期存储为字符串mask@MarkBaker正确的方法是什么?一般来说,我对PHPExcel和excel不是很熟悉