2012-03-28 34 views
5

私は上記のgetCellとよく似たPHPExcelドキュメントを探しています。座標でセルを取得

ありがとうございました。あなたはRowIteratorから$row情報をお持ちの場合は

答えて

13

、あなただけ簡単に呼び出すことができます。

$rowIndex = $row->getRowIndex(); 
$cell = $sheet->getCell('A' . $rowIndex); 
echo $cell->getCalculatedValue(); 

完全なコードは次のようになります。

foreach($worksheet->getRowIterator() as $row){ 
    $rowIndex = $row->getRowIndex(); 

    $cell = $worksheet->getCell('A' . $rowIndex); 
    echo $cell->getCalculatedValue(); 
    $cell = $worksheet->getCell('B' . $rowIndex); 
    echo $cell->getCalculatedValue(); 
} 
+0

それは非常に良いが、実装するのは難しいです。私は細胞の価値を得る方法が必要です。私は列Aから列Rを持っているので、行ごとに2列ずつ列を書く必要があります。 – miqbal

+0

セルを反復するのはなぜですか? – ariefbayu

+0

私はいくつかの列を必要としないので。私は列を無視することはできますが、効率的ではありません。 – miqbal

1

よりもむしろ反復すべてのセルを行に、とき行にrangeToArray()メソッドを使用しないで、array_intersect_key()メソッドを使用して、必要な列のみをフィルタリングします。

$worksheet = $objPHPExcel->getActiveSheet(); 
$highestColumn = $worksheet->getHighestColumn(); 

$columns = array_flip(array('A','C','E')); 
foreach($worksheet->getRowIterator() as $row) 
{ 
    $range = 'A'.$row->getRowIndex().':'.$highestColumn.$row->getRowIndex(); 
    $rowData = $worksheet->rangeToArray($range, 
             NULL, 
             TRUE, 
             TRUE, 
             TRUE); 
    $rowData = array_intersect_key($rowData[$row->getRowIndex()],$columns); 
    // do what you want with the row data 
} 

EDIT

最新のSVNコードが範囲で動作する機能など、イテレータ番目新しいメソッドの数を導入し、または特定の行や列に

6

をポインタを設定します。これは私が必要なものです:

function coordinates($x,$y){ 
return PHPExcel_Cell::stringFromColumnIndex($x).$y; 
} 

実装:

coordinates(5,7); //returns "E7" 

1も-Zの列に対してこの操作を行うことができますが:

function toNumber($dest) 
{ 
    if ($dest) 
     return ord(strtolower($dest)) - 96; 
    else 
     return 0; 
} 

function lCoordinates($x,$y){ 
$x = $toNumber($x); 
return PHPExcel_Cell::stringFromColumnIndex($x).$y; 
} 

実装:

lCoordinates('E',7); //returns "E7" 
+0

余分な機能を追加http://stackoverflow.com/a/3580935/1815624 – CrandellWS

+0

私が欲しかったのは、セルからの実際の価値でした。何も答えを見ることはできません[ここ](http://stackoverflow.com/a/ 22566639/1815624) – CrandellWS

関連する問題