PHPExcel comment obtenir l'index de colonne de la cellule

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

quelle est la meilleure façon d'obtenir le nombre entier (0, 1, 2, ...) de la cellule.

Cette fonction n'existe pas.

$colIndex = $cell->getColumnIndex();

alors quelle est l'alternative avec la conversion Chr en ascii ?

21
demandé sur john Griffiths 2010-08-11 17:49:38

3 réponses

$colIndex = PHPExcel_Cell::columnIndexFromString($cell->getColumn());
45
répondu Mark Baker 2010-08-11 13:56:20

Vous pouvez obtenir l'index de colonne en itérant.

$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
    }
}
5
répondu Shad 2012-11-22 11:27:02
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;

}
?>
1
répondu Sarath Wijeshinghe 2014-09-29 06:08:13