PHPExcel 按值搜索单元格
PHPExcel search cell by value
我想知道如何帮助解决此类问题。
比方说,我有一个 excel 里面有这样的信息(它可能有更多信息):
**Country** **Currency**
Germany EUR
USA USD
Russia RUB
我正在输入表单 "USA",我想查看 excel 的结果美元。
PHP 中是否有某种函数允许在 excel 中搜索值?
或者至少,如果存在这样的函数,那么returns在哪个单元格(例如B2)中存在这样的值?
由于有许多不同的 Excel 格式(2003、2010 怪癖、ooxml 等),您将不得不寻找第三方库来读取 excel 文件。
找一些例子in this question or in this question。
编辑:添加了一个更新的问题。
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 数组函数搜索数组。
我想知道如何帮助解决此类问题。 比方说,我有一个 excel 里面有这样的信息(它可能有更多信息):
**Country** **Currency**
Germany EUR
USA USD
Russia RUB
我正在输入表单 "USA",我想查看 excel 的结果美元。 PHP 中是否有某种函数允许在 excel 中搜索值?
或者至少,如果存在这样的函数,那么returns在哪个单元格(例如B2)中存在这样的值?
由于有许多不同的 Excel 格式(2003、2010 怪癖、ooxml 等),您将不得不寻找第三方库来读取 excel 文件。
找一些例子in this question or in this question。
编辑:添加了一个更新的问题。
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 数组函数搜索数组。