Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Поиск определённых элементов в XLS-файле


Автор: library 22.6.2010, 10:47
Здравствуйте ув. форумчане.


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


Имеется текстовый файл например такого содержимого(его я загружаю в скрипт):

Total flow rate            (kg/s)                            41,534                        3,611                
Weight fraction vapor, In/Out                        1,000                1,000                0,000        0,000                
Temperature, In/Out            (Deg C)            50,00                52,11                62,00        55,00                
Skin temperature, Min/Max            (Deg C)            51,59                55,53


Он именно вот так плохо отформатирован, но принцип в нём такой, идёт название величины, потом через промежутки несколько значений.

Мне нужно выбирать именно эти значения. Тоесть, например, мне нужно 3-е значение после Total flow rate записать в переменную, или второе после Temperature, In/Out.

Как это попроще организовать? Всего мне надо вытащить так около 20 переменных.

Автор: Sentox 22.6.2010, 10:57
Код

$array_string = file("params.txt");
foreach($array_string as $str)
{
    $aParams[] = explode(' ', $str);
}

/* Дальше обработка */

Можно так попробовать, если не получиться тогда в цикле через регулярку.

Автор: skyboy 22.6.2010, 11:01
если "плохое форматирование" - это табуляция, то http://php.net/fgetcsv. если это - неопределенное количество пробелов, то чтение из файла + http://php.net/preg_match или http://php.net/preg_split

Автор: library 22.6.2010, 11:03
Получилось структурировать содержимое файла в файл excel, теперь у каждой необходимой величины есть обозначение например K18,K19,Q20 и т.д. 

C экселем не знаком совсем, как загрузить такой файл в скрипт  и достать значения соответствующие указанным именам?

Автор: skyboy 22.6.2010, 11:33
Цитата(library @  22.6.2010,  10:03 Найти цитируемый пост)
есть обозначение например K18,K19,Q20

это номер строки/столбца соответствующей ячейки?

Автор: library 22.6.2010, 11:39
да да это номер строки/столбца соответствующей ячейки!

Автор: library 22.6.2010, 16:18
Значит, если загрузить xls файл в переменную, нельзя обращаться к её ячейкам?

Автор: Sentox 22.6.2010, 16:48
можно, есть парсер XLS 

Автор: skyboy 22.6.2010, 17:13
да можно.
просто непонятно.
у тебя CSV. "нормальный", или с повышенным содержанием пробелов - не важно. но CSV.
ты хочешь вручную его пересохранять в XLS, после чего использовать сторонние библиотеки для выбора данных.
хотя можешь просто воспользоваться fgetcsv.
я в растерянности.

Автор: library 23.6.2010, 12:54
У меня есть обычный name.xls, в котором есть нужные мне данные, нужно с помощью средств php, получить в скрипт эти данные и присвоить их переменным, 

например в файле есть поле A1 нужно получить 

$a = "значение поля a1"

Автор: skyboy 23.6.2010, 13:29
ну, раз у тебя все же исходные данные - Excel'вский файл, а не 
Цитата(library @  22.6.2010,  09:47 Найти цитируемый пост)
Имеется текстовый файл например такого содержимого
, то, пожалуйста, используй 
Цитата(Sentox @  22.6.2010,  15:48 Найти цитируемый пост)
парсер XLS  

искать можно в http://www.google.com/search?hl=ru&site=&q=php+xls+reader&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=, можно на http://www.phpclasses.org/search.html?words=xls&x=0&y=0&go_search=1.
сходу нашел только http://code.google.com/p/php-excel-reader/, но возможностей, как мне кажется, тебе должно хватить за глаза.

Автор: library 23.6.2010, 14:19
всем спасибо, нашёл нужный скрипт.

здесь http://www.homepictures.ru/halyava/programs.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)