2

我正在尝试在 PHPSpreadsheet 中填充和着色一些标题。列数可以是可变的。文档中建议将单元格样式设置为范围,因此我需要知道最后一个单元格的坐标才能执行此操作。

我在getCellByColumnAndRow遍历列时尝试过使用,但这会返回单元格的值而不是坐标:

$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');

迭代时如何获取最后一个单元格的坐标?

4

2 回答 2

6

getCellByColumnAndRow()不返回单元格值,它返回单元格对象.... 并且该单元格对象有许多方法,包括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');
于 2018-01-24T10:49:04.703 回答
0

要检索单元格值,您可以使用以下命令:

$sheet->getCellByColumnAndRow($intColumn, $intRow)->getParent()->getCurrentCoordinate();

在您的情况下,您应该尝试:

enter$lastCellValue = $sheet->getCellByColumnAndRow($i, 1)->getParent()->getCurrentCoordinate();
于 2020-06-24T09:13:27.610 回答