在PHPSpreadsheet中迭代时如何获取单元格坐标?
How to get cell coordinates when iterating in PHPSpreadsheet?
我正在尝试在 PHPSpreadsheet 中填充和着色一些 headers。列数可以是可变的。文档中建议将单元格设置为范围,因此我需要知道最后一个单元格的坐标才能执行此操作。
我在遍历列时尝试使用 getCellByColumnAndRow
,但此 returns 单元格的值而不是坐标:
$i = 1;
$lastCellValue = null;
foreach ($headers as $header) {
$sheet->setCellValueByColumnAndRow($i, 1, $header);
$lastCellValue = $sheet->getCellByColumnAndRow($i, 1);
$i++;
}
$spreadsheet->getActiveSheet()->getStyle('A1:'.$lastCellValue)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
迭代时如何获取最后一个单元格的坐标?
getCellByColumnAndRow()
不是 return 单元格值,它 return 是单元格 对象 ... 和那个单元格对象有许多方法,包括 getColumn()
、getRow()
和 getCoordinate()
所以
foreach ($headers as $header) {
$sheet->setCellValueByColumnAndRow($i, 1, $header);
$lastCellAddress = $sheet->getCellByColumnAndRow($i, 1)->getCoordinate();
$i++;
}
$spreadsheet->getActiveSheet()->getStyle('A1:'.$lastCellAddress)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
要检索单元格值,您可以使用此方法:
$sheet->getCellByColumnAndRow($intColumn, $intRow)->getParent()->getCurrentCoordinate();
对于你的情况,你应该尝试:
enter$lastCellValue = $sheet->getCellByColumnAndRow($i, 1)->getParent()->getCurrentCoordinate();
我正在尝试在 PHPSpreadsheet 中填充和着色一些 headers。列数可以是可变的。文档中建议将单元格设置为范围,因此我需要知道最后一个单元格的坐标才能执行此操作。
我在遍历列时尝试使用 getCellByColumnAndRow
,但此 returns 单元格的值而不是坐标:
$i = 1;
$lastCellValue = null;
foreach ($headers as $header) {
$sheet->setCellValueByColumnAndRow($i, 1, $header);
$lastCellValue = $sheet->getCellByColumnAndRow($i, 1);
$i++;
}
$spreadsheet->getActiveSheet()->getStyle('A1:'.$lastCellValue)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
迭代时如何获取最后一个单元格的坐标?
getCellByColumnAndRow()
不是 return 单元格值,它 return 是单元格 对象 ... 和那个单元格对象有许多方法,包括 getColumn()
、getRow()
和 getCoordinate()
所以
foreach ($headers as $header) {
$sheet->setCellValueByColumnAndRow($i, 1, $header);
$lastCellAddress = $sheet->getCellByColumnAndRow($i, 1)->getCoordinate();
$i++;
}
$spreadsheet->getActiveSheet()->getStyle('A1:'.$lastCellAddress)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
要检索单元格值,您可以使用此方法:
$sheet->getCellByColumnAndRow($intColumn, $intRow)->getParent()->getCurrentCoordinate();
对于你的情况,你应该尝试:
enter$lastCellValue = $sheet->getCellByColumnAndRow($i, 1)->getParent()->getCurrentCoordinate();