dongxing9219 2017-09-20 07:28
浏览 745
已采纳

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

Here, I'm reading an excel sheet which may or may not have merged cells. Well looping through the cells in the current sheet, if i come across a merged cell then i should be able to find its range and value.

These are the steps:-

1. Reading the cell A1 or B1 or B7 or A9.
2. Check whether its merged with any other cell.
3. If the cells are merged then get the range of the merge, for ex: A1 to A7 or A1 to D1
4. And finally after getting the range get the value.

  • 写回答

1条回答 默认 最新

  • dqbhdsec59405 2017-09-20 12:17
    关注

    For any given cell object, there are a number of helper methods available

    $cell->isInMergeRange()
    

    Will return a boolean, a true/false value indicating if a cell is part of a merge range

    $cell->getMergeRange()
    

    Will return the merge range that the cell is apart of (e.g. "A1:C3"), or a boolean false if it is not part of a merge range

    $cell->isMergeRangeValueCell()
    

    Will return a boolean true/false indicating if this cell is the master cell in the range (top left cell) in a merge range (that holds the actual data value)

    Additionally, the worksheet object has a method

    $worksheet->getMergeCells()
    

    which will return an array listing all the merge ranges within the worksheet

    Lastly, a call to the static method

    PHPExcel_Cell::splitRange($mergeRange);
    

    passing in a range value like 'A1:C3', will return an array with two elements; the first being the address of the top-left cell in the range (that holds the actual data value), the second being the bottom right cell address, the "end" of the range

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!