Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Excel в php
 
 автор: necroms   (21.12.2008 в 02:00)   письмо автору
 
 

Доброе время суток.
Возникла проблема: есть excel файл, в котором содержится каталог продукции, и мне нужно достать из него цены по каждому товару по названию. То есть скрипт, который достает цену товара из excel(и помещает его в какую то переменную или массив), по названию товара.
Это возможно?

  Ответить  
 
 автор: devzorg   (21.12.2008 в 10:22)   письмо автору
 
   для: necroms   (21.12.2008 в 02:00)
 

сохрани как csv

например id;товар;описание;цена

<?
$массив 
file("файл");
foreach(
$массив as $line)
{
  list(
$id,$product,$descr,$cost) = explode(";",$line);
//теперь данные в этих переменных
тут делать что хочешь с каждым товаром из файла
}
?>

  Ответить  
 
 автор: elenaki   (22.12.2008 в 10:49)   письмо автору
 
   для: devzorg   (21.12.2008 в 10:22)
 

главное, чтоб в описании не было точек с запятой. лучше взять другой разделитель - | или \tab

  Ответить  
 
 автор: Trianon   (22.12.2008 в 10:52)   письмо автору
 
   для: elenaki   (22.12.2008 в 10:49)
 

лучше, понятное дело, применить fgetcsv() - тогда и точки с запятой не помеха, и кавычки адекватно прочитаются.

А вообще же идея применить другой разделитель всегда разбивается о мысль "а что будет, когда этот разделитель попадется в тексте?".

  Ответить  
 
 автор: necroms   (22.12.2008 в 12:28)   письмо автору
 
   для: devzorg   (21.12.2008 в 10:22)
 

Спасибо за ответ, но мне нужно немножко другое. Нужен именно поиск по Excel файлу, например я в php ввожу название товара, и если оно совпадает где-то в excel, то выводится определенный столбец из данной строки. Это можно как-то сделать?

  Ответить  
 
 автор: sim5   (22.12.2008 в 13:39)   письмо автору
 
   для: necroms   (22.12.2008 в 12:28)
 

Trianon ведь сказал выше - использовать fgetcsv(). Например, ваш Excel файл, это сохраненный CSV-файл (имя test.csv):
"type1, ""as""";12;35;23
"type2 ""as""";13;234;235
type3;14;122;323

Заметьте, как в нем закрываются имена имеющие кавычки. Теперь:
<?
$mass 
= array();
$fp fopen ("test.csv","r");
//загружаем в массив
while ($data fgetcsv ($fp1000";")) $mass[] = $data;
fclose ($fp);
//ищем нужное в массиве
$key array_search("type1, \"as\""$mass);
//если будет найдено, то получете массив нужного по возвращенному ключу
print_r($mass[$key]);
?>

  Ответить  
 
 автор: Zend72   (22.12.2008 в 13:57)   письмо автору
 
   для: necroms   (21.12.2008 в 02:00)
 

Будет рабоать, только если в качастве ОС используется Windows:
Word
Почему в эти дебри лучше не соваться
Функции PHP для работы с MS Word & Excel

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования