【问题标题】:PHPExcel how to get column index from cellPHPExcel如何从单元格中获取列索引
【发布时间】:2010-08-11 13:49:38
【问题描述】:

PHPExcel $cell->getColumn() 返回 'A', 'B', 'C', ...

这是从单元格中获取整数 (0, 1, 2, ...) 的最佳方法。

此函数不存在。

$colIndex = $cell->getColumnIndex();

那么没有将 chr 转换为 ascii 的替代方法是什么?

【问题讨论】:

  • 请记住,getColumn() 可以为 > 26 列返回“AA”(等等)...

标签: php phpexcel


【解决方案1】:
$colIndex = PHPExcel_Cell::columnIndexFromString($cell->getColumn());

【讨论】:

  • OK 工作正常,我注意到 A 列返回的值为 1,但 $cell = "worksheet->getCellByColumnAndRow($col, $row); 使用 0 表示 A 列 go figure
  • 是的,很古怪……我在接手 PHPExcel 开发时继承了一些东西,但改变它会破坏很多人的向后兼容性
  • 还有 PHPExcel_Cell::stringFromColumnIndex 供那些需要另辟蹊径的人使用。
  • 可以找到一个很好的答案here - 帮了我很多 -
  • @MarkBaker - 这个问题、答案和 cmets 是很久以前提出的,但是如果还没有任何解决方案呢?这不是一个大问题,但有点烦人。您可以考虑实现在哪个索引上开始列以及应该使用什么返回值(例如 $PHPExcel->setStartColumnIndex(0); $PHPExcel->setReturnValue(string) 或 $PHPExcel->setReturnValue(int) 等) .只是一个提示!否则这个库太棒了:-)
【解决方案2】:

可以在迭代时获取列索引。

$xls = PHPExcel_IOFactory::load($fn);
$xls->setActiveSheetIndex(0);
$sheet = $xls->getActiveSheet();

foreach($sheet->getRowIterator() as $row)
{
    foreach($row->getCellIterator() as $key => $cell)
    {
        echo $key; // 0, 1, 2...
        echo $cell->getCalculatedValue(); // Value here
    }
}

【讨论】:

  • 我如何只获得每行第二个单元格的值?
【解决方案3】:
If you want to get decrement cell address using this function, you have to use another function with this function as follows.

<?php
echo columnLetter("AB");

function columnLetter($c){


$letter="";
    $c = intval(columnNumber($c));
    if ($c<=0) return '';

    while($c != 0){
       $p = ($c - 1) % 26;
       $c = intval(($c - $p) / 26);
       $letter = chr(65 + $p) . $letter;
    }

    return $letter;

}

function columnNumber($col){

    $col = str_pad($col,2,'0',STR_PAD_LEFT);
    $i = ($col{0} == '0') ? 0 : (ord($col{0}) - 64) * 26;
    $i += ord($col{1}) - 64;

    return $i-1;

}
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多