PHPExcel按值搜索单元格

Yur*_* T. 4 php phpexcel

我想知道,如何帮助解决这个问题.让我们说,我有一个excel有这样的信息(它可能是更多的信息):

**Country**            **Currency**
Germany                 EUR    
USA                     USD    
Russia                  RUB
Run Code Online (Sandbox Code Playgroud)

我输入"USA"输入表格,我希望看到excel的结果USD.在PHP中是否有某种功能,它允许在excel中搜索值?

或者至少,如果存在这样的函数,它返回哪个单元格(例如B2)存在这样的值?

Mar*_*ker 11

没有什么内置在PHPExcel做搜索的,但它是非常简单的写的东西自己周围的迭代器基于....看一看28iterator.php/Examples

$foundInCells = array();
$searchValue = 'USA';
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
    $ws = $worksheet->getTitle();
    foreach ($worksheet->getRowIterator() as $row) {
        $cellIterator = $row->getCellIterator();
        $cellIterator->setIterateOnlyExistingCells(true);
        foreach ($cellIterator as $cell) {
            if ($cell->getValue() == $searchValue) {
                $foundInCells[] = $ws . '!' . $cell->getCoordinate();
            }
        }
    }
}
var_dump($foundInCells);
Run Code Online (Sandbox Code Playgroud)

当然,如果您只想搜索特定工作表中的特定列,则可以对此进行大量简化,例如rangeToArray()使用标准PHP数组函数然后使用标准PHP数组函数进行搜索.