PHPExcel поиск ячейки по значению

Мне интересно, как можно помочь с таким вопросом.
Допустим, у меня есть Excel с такой информацией (это может быть гораздо больше информации):

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

и я вхожу в форму ввода «США», и я хочу видеть результат в долларах США от Excel.
Есть ли какая-то функция в PHP, которая позволяет искать значение в Excel?

Или, по крайней мере, если существует такая функция, которая возвращает в какую ячейку (например, B2) такое значение?

4

Решение

В 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.

11

Другие решения

Поскольку существует множество различных форматов Excel (причуды 2003, 2010, ooxml и т. Д.), Вам придется искать стороннюю библиотеку для чтения файлов Excel.

Найдите несколько примеров в этом вопросе или же в этом вопросе.

Изменить: добавлен более актуальный вопрос.

1

По вопросам рекламы [email protected]