Поиск в excel файле на php

I’m wondering, how it’s possible to help with such issue.
Let’s say, I have an excel with such info in it (it could be much more info):

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

and I’m entering in input form «USA», and I want to see the result USD from excel.
Is there some kind of function in PHP, which allows to search for a value in excel?

Or at least, if there existing such function, which returns in which cell (e.g. B2) such value exists?

asked Jan 20, 2015 at 12:07

Yuriy T.'s user avatar

Yuriy T.Yuriy T.

1952 gold badges4 silver badges12 bronze badges

There’s nothing built-in to PHPExcel to do a search, but it’s pretty straightforward to write something yourself based around the iterators…. take a look at 28iterator.php in /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);

Of course, if you’re only wanting to search a specific column in a specific worksheet, you can simplify this a great deal, e.g. using rangeToArray() and then searching the array using standard PHP array functions.

answered Jan 20, 2015 at 12:47

Mark Baker's user avatar

Mark BakerMark Baker

208k31 gold badges340 silver badges383 bronze badges

1

As there a re many different Excel Formats (2003, 2010 quirks, ooxml, etc.) you will have to look for a third party library to read excel files.

Find some examples in this question or in this question.

Edit: added a more current question.

Community's user avatar

answered Jan 20, 2015 at 12:12

Kai Brummund's user avatar

Kai BrummundKai Brummund

3,5283 gold badges27 silver badges33 bronze badges

4

Рекурсивный акроним словосочетания «PHP: Hypertext Preprocessor»
Добро пожаловать на форум PHP программистов!

Главная
Документация
Новости
Форум

За последние 24 часа нас посетили 12784 программиста и 926 роботов. Сейчас ищут 264 программиста …

Поиск по .xls файлу

Тема в разделе «Решения, алгоритмы», создана пользователем elik_asad, 22 сен 2015.


  1. elik_asad

    elik_asad
    Новичок

    С нами с:
    22 сен 2015
    Сообщения:
    2
    Симпатии:
    0

    Друзья я новичок в php и поэтому прощу помочь. Должен создать поисковик по .xls файлу, в файле имеется два столбца, поискать нужно по первому, а получить как результат всю строку. в файле строк больше 10 000, какая функция подойдет для решения?

    #1


    elik_asad,

    22 сен 2015


  2. mr.akv

    mr.akv
    Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206

    php не умеет работать с экселевскими файлами сам. Есть библиотека php Excel, кажется. Почитайте про неё.

    #2


    mr.akv,

    22 сен 2015


  3. elik_asad

    elik_asad
    Новичок

    С нами с:
    22 сен 2015
    Сообщения:
    2
    Симпатии:
    0

    Спасибо, я прогуглил только что, но народ жалуется на time limit и out of memory при использовании PHPExcel на больших количествах строк в файле. А что если перенести хлс в тхт и создать массив на файл, не знаете ли будет ли поиск осуществляться замедленным?

    #3


    elik_asad,

    22 сен 2015


  4. zahermaher

    zahermaher
    Новичок

    С нами с:
    27 сен 2014
    Сообщения:
    170
    Симпатии:
    14

    лучше тогда импортировать содержимое файла в базу данных .

    #4


    zahermaher,

    22 сен 2015

(Вы должны войти или зарегистрироваться, чтобы разместить сообщение.)

Показать игнорируемое содержимое

Ваше имя или e-mail:
У Вас уже есть учётная запись?
  • Нет, зарегистрироваться сейчас.
  • Да, мой пароль:
  • Забыли пароль?

Запомнить меня

Мне интересно, как можно помочь с таким вопросом.
Допустим, у меня есть 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

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

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

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

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

20 янв. 2015, в 13:51

Поделиться

Источник

2 ответа

Нет ничего встроенного в 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.

Mark Baker
20 янв. 2015, в 13:02

Поделиться

Как и многие другие форматы Excel (2003, 2010 quirks, ooxml и т.д.), вам придется искать стороннюю библиотеку для чтения файлов excel.

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

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

Kai Brummund
20 янв. 2015, в 13:04

Поделиться

Ещё вопросы

  • 0Как я могу получить 1-й и последний из всех без среднего значения в тот же день
  • 0Magento: смена домена со старого на новый и проблемы с хостингом
  • 0Перенаправить одну страницу с HTTPS на HTTP
  • 1я не понимаю, что такое «защищенная пустота Page_Load»
  • 1Приложение активирует кнопку изменения ориентации в строке состояния
  • 1Диаграмма разброса Matplotlib дает значение ValueError (msg.format (c.shape, x.size, y.size)) при указании цветов
  • 1D3 JS — группа, содержащая прямоугольник SVG, не будет плавно переводиться при перетаскивании
  • 1Сокращение времени вычислений для поиска слова в анаграмме
  • 0Адаптируйте jQuery-File-Upload для изображения профиля пользователя.
  • 0JQuery Play Framework избежать двойной подачи
  • 0Cookie-проблема в Angular
  • 1Комбинации без дубликатов всех элементов в Python
  • 0передача в параметр управления MVC из Javascript
  • 1Linq to XML: проблема с двоеточием в тегах xml
  • 0Как добавить максимальный лимит элементов в базу данных MySQL?
  • 1Java Libgdx правильно опускает ссылки на классы для сборки gwt
  • 1Сохранение данных Parcelable
  • 0Передача параметров для моего приложения jquery_mobile
  • 0Как сложить количество из таблицы CodeIgniter и MySql
  • 1Найти оптимальный набор подстрок в данной строке
  • 1Реализация представления карусели как прокрутка списка
  • 1Воспроизвести буфер AAC на Android
  • 1Python Pandas pkl версия датафрейма
  • 0Конвертировать svg box в css3 повернутый div
  • 0Событие пожара на пятне Следующая стрелка щелчок в угловую, динамическая загрузка
  • 1indexoutofrangeexception в Datatable с Parallel.Foreach
  • 0Не могу разобрать 0:30 AM / PM правильно в PHP
  • 1Настройка Android заставки (активность), как Iphone Part1
  • 0Прекратить отправку обычного HTML при ошибке PHP?
  • 1общая путаница декларации
  • 0Как заменить устаревший тег шрифта на span, используя Beautiful Soup
  • 0Возврат данных не работает в запросе http в угловых [дубликаты]
  • 1Специальное событие для свойств @Input
  • 1$ или оператор не распознается в узле
  • 1сельдерей вложенные аккорды не вызывают обратный вызов в правильном порядке
  • 1Могу ли я изменить метку кнопки «установить» в TimePickerDialog?
  • 1Как сделать анимацию слушателем в MonoDroid?
  • 0преобразование jQuery в чистый javascript
  • 0подсказка JavaScript с именем
  • 1Передайте массив с определенным идентификатором из одного класса в другой в Android
  • 1Визуализация Просмотр в бэкэнд DLL
  • 1Переместить папки вверх по пути к файлу .class файла в Java
  • 0По заданному бинарному дереву поиска найдите узел с наибольшим значением вхождений.
  • 0динамически размещаемый массив строк
  • 1Java MulticastSocket отправляет, но не получает
  • 0Прочитайте больше кнопку к описанию категории после определенных символов.
  • 0MySQLi зацикливание запроса по массиву возвращает throws Неопределенное смещение: 1
  • 0Выясните, включена ли опция радио, прежде чем нажать
  • 1JavaScript перебирает 2D-массив и возвращает несоответствия
  • 1Является ли Material TextAppearance полезным для обработки различных textSize

Сообщество Overcoder

Здравствуйте, необходимо реализовать форму поиска из текстового файла в формате .txt или .excel
Т.З следующее
Пользователь в форму вводит значения ( Имя Фамилия Отчество) , если эти значение имеется в удаленном файле который находится по адрессу www.my-website.ru/user.excel(txt)
То выводит соотвествующий резульат ( Да или Нет)
Как это реализовать? Есть на подобии примеры.
Спсибо.

P.S в данном файле не только ФИО , эти значения рассположены не упорядочно.


  • Вопрос задан

    более трёх лет назад

  • 168 просмотров

Самый простой вариант, с условием сохранения последовательности ФИО в файле user.txt

function sendForm(){
	$.ajax({
		url: 'form.php',
		type: 'POST',
		data: {
			fio: $('form input').val();
		},
		success: function(response) {
			$('#result').html(response);
		}
	});	
}
// form.php
$data = file('user.txt', FILE_IGNORE_NEW_LINES);
if (in_array($_POST['fio'], $data)){
    echo 'Yes';
}

else {
    echo 'No';
}
// user.txt
Лердорф Расмус 
Эйх Брендан
Тим Бернерс-Ли
Хокон Виум Ли

Пригласить эксперта


  • Показать ещё
    Загружается…

16 апр. 2023, в 16:39

80000 руб./за проект

16 апр. 2023, в 14:44

4500 руб./за проект

16 апр. 2023, в 13:46

1000 руб./за проект

Минуточку внимания

Понравилась статья? Поделить с друзьями:
  • Поиск в excel с подсветкой
  • Поиск в excel с неточным совпадением
  • Поиск в excel проценты
  • Поиск в excel по части текста формулы
  • Поиск в excel по части текста в столбце