如何使用 PHPExcel 从合并的单元格中获取值?

How to get a value from merged cell using PHPExcel?

在这里,我正在阅读 excel sheet,其中可能有也可能没有合并单元格。很好地循环遍历当前 sheet 中的单元格,如果我遇到合并的单元格,那么我应该能够找到它的范围和值。

这些是步骤:-

1.读取单元格A1或B1或B7或A9。
2.检查它是否与任何其他单元格合并。
3. 如果合并了单元格,则获取合并的范围,例如:A1 到 A7 或 A1 到 D1
4. 最后在获取范围后获取值。

对于任何给定的单元格对象,都有许多可用的辅助方法

$cell->isInMergeRange()

将 return 一个布尔值,一个 true/false 值指示单元格是否是合并范围的一部分

$cell->getMergeRange()

将 return 单元格所属的合并范围(例如 "A1:C3"),如果它不是合并范围的一部分,则为布尔值 false

$cell->isMergeRangeValueCell()

将 return 一个布尔值 true/false 指示此单元格是否是合并范围(包含实际数据值)中范围(左上角单元格)中的主单元格

此外,工作表对象有一个方法

$worksheet->getMergeCells()

这将return一个列出工作表中所有合并范围的数组

最后,调用静态方法

PHPExcel_Cell::splitRange($mergeRange);

传入一个范围值,如'A1:C3',将return一个包含两个元素的数组;第一个是范围左上角单元格的地址(保存实际数据值),第二个是右下角单元格地址,范围 "end"