Spreadsheet Excel Writer

crocodile2u

http://vbolshov.org.ru
Spreadsheet Excel Writer

Если кто сталкивался с подобной проблемой, не откажите в помощи....

Пишу данные в Excel, используя Spreadsheet Excel Writer. На локалке все прекрасно (винда), на хостинге файл получается битый и не читается.......

сломал остатки мозгов.

-~{}~ 04.03.04 10:36:

$exc = new Spreadsheet_Excel_Writer('test.xls');
// Spreadsheet_Excel_Writer Formats
$frm_title = $exc->addFormat(array('Size' => 12,
'color' => 'black',
'bold' => 1,
'Align' => 'merge',
'Pattern' => 1,
'FgColor' => 'orange',
'Border' => 1,
'BorderColor' => 'black'));
$frm_data = $exc->addFormat(array('Size' => 10,
'color' => 'black',
'Align' => 'left',
'Border' => 1,
'BorderColor' => 'black'));
$frm_headline = $exc->addFormat(array('Size' => 10,
'color' => 'black',
'Align' => 'left',
'FgColor' => 'white',
'Border' => 1,
'BorderColor' => 'black'));
// Spreadsheet_Excel_Writer Formats
// USER info
$s_name = "Test";
$exc_ws =& $exc->addWorksheet($s_name);
$exc_ws->write(0, 0, str_replace(array("\n","\r"), array("",""), "Описание файла"), $frm_data);
$line = 1;
foreach ($user['user_data'] as $key => $param) {
$txt = $param['txt'];
$val = $param['val'];
$exc_ws->write($line, 2, $txt, $frm_headline);
$exc_ws->write($line, 3, $val, $frm_data);
$line++;
}
// USER info
 

young

Новичок
А как ты его получаешь с хостинга?

Там случаем не русский Апач стоит?
 

crocodile2u

http://vbolshov.org.ru
Спасибо за отклик

Файл собирается из БД,

насчет апача щас проверю. Кстати, и что если русский?
 

HEm

Сетевой бобер
а этот твой спридшит случаем не через COM-объекты работает? естественно, под виндой оно сработает а на хостинге под линуксом - хрен
 

crocodile2u

http://vbolshov.org.ru
Ребята, что за зверь такой:

CoffeeMaker/1.1 (Unix)

-~{}~ 04.03.04 11:04:

Originally posted by young
Если русский, то где-то тут http://detail.phpclub.net/article/upload написано как это лечить.
Не совсем понял. Это не про uploaded file. Файл собирается на серваке.

А про CharsetRecodeMultipartForms уже наслышан
 

HEm

Сетевой бобер
CoffeeMaker/1.1 (Unix) - это такая кофеварка под управлением Unix, в первый раз услышал чтоли?
 

crocodile2u

http://vbolshov.org.ru
Originally posted by young
К тебе в частности относиться
Код:
CharsetDisable On
[/code]
так. как же это я про CharsetDisable забыл. щас попробую...

-~{}~ 04.03.04 11:16:

Originally posted by young
А хостера с такой какой надо посылть нах...
Клиент там хостится уже ХЗ сколько

-~{}~ 04.03.04 11:25:

Originally posted by young
Код:
CharsetDisable On
[/code] [/B]
Прописал в папке, где все происходит, .htaccess:
CharsetDisable On

Выдает 500 Internal Server Error

Блин достал уже этот ехель гребаный...

-~{}~ 04.03.04 11:31:

Ребят, ну может еще поднатужиться? Вышлю пиво почтой тому, кто подскажет, что делать....

Код работает. Файл собирается.... Какого хрена он бьется на серваке????? башка уже нах поехала
 

young

Новичок
Код работает. Файл собирается.... Какого хрена он бьется на серваке????? башка уже нах поехала
Попробуй собрать файл на сервере и забрать его по FTP а не HTTP
 

confguru

ExAdmin
Команда форума
crocodile2u

Ну закупайся пивом и найди DANа - он сосед твой по городу...
 

crocodile2u

http://vbolshov.org.ru
Originally posted by admin
crocodile2u

Ну закупайся пивом и найди DANа - он сосед твой по городу...
С DANом мы вчера уже разбирались с почтой. Почту я в конце концов сам разрулил, а вот теперь проблемка с ехелем... я кстати щас дэну постараюсь помочь прописку получить. Нас из аспирантуры вышибли....

НОВАЯ ИНФА ПО МОЕЙ ПРОБЛЕМЕ:

Создал тестовый файлик, кот. создает 1 книгу, в ней 1 лист, в листе 1 запись. На локалке получается нормальный файл, и весит ок 3,5 кБ; а на хостинге получается файл 1540 байт. Самое прикольное, что любой файл, кот. я собирал на хостинге, обрезается именно до 1540 байт.

Может, это чем-то поможет отцам русской демократии?

-~{}~ 04.03.04 12:06:

текстовый файл пишется нормально, не обрезается

-~{}~ 04.03.04 12:08:

Мужики, ну может кто поможет? Насчет пива я не шучу:
собираюсь с Деном в мае на пхп-конференцию (или что-то типа того), поставлю, если вы там будете :)

-~{}~ 04.03.04 12:42:

Извините, что трачу ваше время, но все-таки:
никто не может помочь? Я уже написал в суппорт хостинга, жду ответа

-~{}~ 04.03.04 16:11:

Народ, помогите!

выяснил еще одну вещь:

вроде бы не работает вообще под UNIX -
залил тестовый файл (копия кода из мануала) на другой сервер, там UNIX и Apache.... та же фигня.
 

ecto

Новичок
делай файл в csv формате
делается просто (скорее даже элементарно)
и в xls у себя дома всегда переведешь (если надо)
 

young

Новичок
вроде бы не работает вообще под UNIX -
залил тестовый файл (копия кода из мануала) на другой сервер, там UNIX и Apache.... та же фигня.
Ты уверен что не используешь COM ?
 

crocodile2u

http://vbolshov.org.ru
Под UNIX работает. Я уже добился этого на другом серваке (UNIX + Apache). Надо было только прописать объекту $workbook свойство _temp_dir - чтобы OLE мог создавать временные файлы.

Вот код, кот. работает на связке UNIX + Apache, но почему-то не пашет под UNIX + CoffeeMaker (кстати хостер говорит, что это тот же апач(правда я замотался не узнал, какой именно апач :((( ).

Я там понаставил echo "$i<br>"; , чтобы знать, в каком месте скрипт загнется. Загинается на строчке:
$close = $workbook->close();

Вывести переменную $close не получается, а это бы очень помогло... там при ошибке PEAR содержится объект PEAR_error

<?php
ini_set("include_path", ".:" . $_SERVER['DOCUMENT_ROOT'] . "/PEAR");
echo "1<br>";
require_once ("PEAR.php");
echo "2<br>";
require_once ("Spreadsheet/Excel/Writer.php");
echo "3<br>";
// Creating a workbook
$fname = "test111.xls";
echo "4<br>";
$workbook = new Spreadsheet_Excel_Writer($fname);
echo "5<br>";
$workbook->_tmp_dir = dirname(__FILE__);
echo "6<br>";
// sending HTTP headers
//$workbook->send('test.xls');
// Creating a worksheet
$worksheet =&$workbook->addWorksheet('My first worksheet');
echo "7<br>";
// The actual data
$worksheet->write(0, 0, 'Name');
echo "8<br>";
// Let's send the file
$close = $workbook->close();
echo "FINAL";
?>

-~{}~ 05.03.04 11:05:

Мужики, всем спасибо!!!!

Проблема снята!

Я оказался лохом!

Ура!

На самом деле я просто бегал с компа на комп, когда тестировал на локалке, и везде все работало. Тогда я перелил всю байду на сервак, а там не работает. Проверил опять на локалке, за одним компом, за другим. Работает. Вспомнил про PEAR::OLE. Залил нужный package, но получилось так, что PEAR::Spreadsheet_Excel_Writer я залил с одного компа, а PEAR::OLE - с другого... На серваке оказались новый Excel_Writer и старый OLE, а новому Excel_Writer'у нужен новый OLE....

-~{}~ 05.03.04 11:11:

Кстати, приведенный вверху код отлично работает на UNIX+Apache. Кому нужно - забирайте. Он отличается от кода из мануала одной строкой, которая и заставляет его работать:

$workbook->_temp_dir = dirname(__FILE__);

:)Вместо этого можно использовать:

$workbook->setTempDir(dirname(__FILE__));

хотя впрочем, почему именно dirname(__FILE__) ???

юзайте какие хотите пути.... *)
 
Сверху