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


Автор: <Spawn> 22.7.2005, 15:35
При выполнении скрипта работаю с загруженным Excel документом. Локально все работает. При установки на сервер все глухо. Выяснилось, что там не было Excel-я, но даже при его установке ни чего не заработало. error_reporting ни чего не выдает (может на сервере это как то заблокировали работу этой функции?).

Скрипт выполняется до строки echo 1:

Код

    function xls_handle($file_name, $callback_value_handler, $callback_before_row_handler,
        $callback_after_row_handler)
    {
                 global $xls_list;

                 echo "1";

                 $xls = new COM("Excel.Application");

                 echo "2";




echo "2" уже не выполняется. В чем может быть дело????

Автор: Bikutoru 22.7.2005, 16:41
Это
Цитата
$xls = new COM("Excel.Application");

означает примерно следующее: РНР пытается обратиться к какой-то (не помню к какой, если надо, то дома могу посмотреть) ветви реестра MS Windows и найти там описание объекта Excel.Application. Если найдет, то начинается проверка необходимости создания COM-сервера Excel.Application и т.д. и т.п. Насколько я понимаю, большинство серверов "под UNIXОм со товарищи ходят". Никакого Excel там нет, а на PHP.net честно пишут
Цитата

COM functions are only available for the Windows version of PHP.

http://ru3.php.net/manual/en/ref.com.php

Если сервер Виндовый, то попробуй сделать так:
Код

$xls = new COM("Excel.Application");
if (!$xls)
{
   echo "Нет Excel";
   //Нужно идти жаловаться в тех поддержку
}

Автор: Mal Hack 22.7.2005, 16:58
Цитата
(может на сервере это как то заблокировали работу этой функции?).

display_error судя по всему Off...

Автор: <Spawn> 23.7.2005, 08:52
Bikutoru Я все это знаю - с COM работаю более 2 лет. Сервер на Window стоит...

Цитата
Если сервер Виндовый, то попробуй сделать так:
В первом посте я привел похожий пример, на котором выполнение скрипта останавливается.

Пока ищу другой хостинг... (Может кто подскажет хостинг под Windows + установленый на нем Excel + оплату через Яндекс.Деньги?)

Автор: Bikutoru 23.7.2005, 09:18
Цитата
Я все это знаю - с COM работаю более 2 лет

Сразу-то ты это не сказал...

Цитата
В первом посте я привел похожий пример, на котором выполнение скрипта останавливается.

Вот тут виноват - неправильно прочитал
Попробуй так сделать
Код

ini_set("error_reporting", "on");
error_reporting(E_ALL);
$word = new Com("Word.Application") or die("Word bug");
echo "Word Ok";
$excel = new Com("Excel.Application") or die("Excel bug");
echo "Excel Ok";


А в техническую поддержку ты не обращался?

Автор: <Spawn> 23.7.2005, 09:45
Неа ((( Ни чего сервак не ответил на этот код. Пустая страница...

Автор: <Spawn> 23.7.2005, 11:52
Решение проблемы только в создании своего сервера smile Поговорив с поддеркжой одного из хостингов выяснилось, что хостингов с установленным Office не бывает...

Автор: Bikutoru 23.7.2005, 12:11
А как всё было просто...

Цитата
Решение проблемы только в создании своего сервера

Не только smile Можно еще собственный парсер Excel'евских файлов написать, но хрен редьки не слаще smile
А простой csv-файл не подойдет? С ним можно без проблем в РНР работать...

Автор: Mal Hack 23.7.2005, 13:10
<Spawn> если ошибки не выводятся, error_reporting не при чем. Юзать надо директиву display_error.

Автор: <Spawn> 23.7.2005, 19:09
Цитата
А простой csv-файл не подойдет? С ним можно без проблем в РНР работать...


Неа не подойдет, заказчик требует, чтобы на сервак заливались Excel прайсы и потом все в базу заносилось из них.

Автор: Bikutoru 24.7.2005, 11:40
<Spawn>, аналогичная ситуация, но заказчику популярно объяснили, что если ему очень хочется xls, а не csv, то это будет стоить во столько-то дороже. Человек понял. За удовольствия нужно платить smile

Автор: <Spawn> 24.7.2005, 12:56
Bikutoru
Хмsmile Можно тогда ссылочку какую нить по работе с CSV в PHP?

Автор: Mal Hack 24.7.2005, 13:00
http://php.net/fgetcsv

Автор: <Spawn> 24.7.2005, 13:03
Сенк

Автор: Гость_hash 28.7.2005, 13:05
В PEAR есть классы для работы с xls.
Про чтение невкурсе, но у меня на сервере с FreeBSD генерируются замечательно.

Автор: hash 28.7.2005, 13:06
сорри, что не залогинился..

Автор: Гость_Fara 1.8.2005, 18:39
Я например так делал (задача была как экспорт так и импорт xls файлов в одном проекте).
Скрипт ессно платформо-независимый получился.

для генерации xls файла: PEAR::Spreadsheet_Excel_Writer
для чтения: Spreadsheet_Excel_Reader (лежит на sourceforge.net)

PS: Bikutoru, а сколько стоит это удовольствие можно узнать?

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