PHPExcel.如何检查当前单元格是否与另一个单元格合并


PHPExcel. How to check if current cell is merged with another?

我使用PHPExcel导入Excel文件到我的网站。例如,有两个合并的单元格A1和A2。是否有一种方法来找出是A1合并到另一个单元格(A2或其他)或不?

$workbook = new PHPExcel;
$sheet = $workbook->getActiveSheet();
$sheet->mergeCells('A1:E1');
$cell = $sheet->getCell('A1');
// Check if cell is merged
foreach ($sheet->getMergeCells() as $cells) {
    if ($cell->isInRange($cells)) {
        echo 'Cell is merged!'
        break;
    }
}

我认为没有更好的解决方案,因为phpexcel存储合并单元格信息的方式

最简单的方法是使用getMergeRange()方法。

if ($cell->getMergeRange()) {
    // cell is merged
}

我猜很多人都想知道合并单元格的值,在这种情况下,您可以参考以下代码:

if (($range = $cell->getMergeRange()) && !$cell->isMergeRangeValueCell()) {
    $first_in_range_coordinates = strtok($range, ':');
    $value = $sheet->getCell($first_in_range_coordinates)->getValue();
}