PHPExcel按值搜索单元格

时间:2015-01-20 12:07:22

标签: php phpexcel

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

**Country**            **Currency**
Germany                 EUR    
USA                     USD    
Russia                  RUB

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

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

2 个答案:

答案 0 :(得分: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);

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

答案 1 :(得分:1)

由于存在许多不同的Excel格式(2003年,2010年的怪癖,ooxml等),您将不得不寻找第三方库来读取Excel文件。

查找一些示例in this questionin this question

编辑:添加了一个更新的问题。