Spreadsheet_Excel_Writer проблема с созданием файлов

DiMoN_TD

Новичок
Spreadsheet_Excel_Writer проблема с созданием файлов

Здравствуйте!
В общем установил я себе это библиотеку: Spreadsheet_Excel_Writer-0.9.1 Все как полагается. При выполнении данного скрипта:

PHP:
<?php 
require_once "/usr/local/share/pear/Spreadsheet/Excel/Writer.php"; 

$xls =& new Spreadsheet_Excel_Writer(); 

$xls->send("test.xls"); 

$sheet =& $xls->addWorksheet('Binary Count'); 

for ( $i=0;$i<11;$i++ ) { 
 $sheet->write($i,0,decbin($i)); 
} 
$xls->close(); 
?>
Браузер предлагает мне сохранить файл test.xls, я его сохраняю, открываю Microsoft Office'ом и при открытии мне пишет:

"The file you are trying to open, 'test.xls', is in a different format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open file now?"

Я конечно же отвечаю да, в итоге у меня открывается сам файл. Книга названа test, а вот содержимое книги примерно следующее:
"
\РПаЎ±б;юя

юяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя

р?$@&@Y@@Y@Ђ[@А[@@Џ@
ђЏ@>
¶
Root Entryяяяяяяяя
яяяяяяяяяяяя
<head>
<title>

</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link href="/admin1.css" rel="stylesheet" type="text/css">
<script language="JavaScript"><!--
function no(v){document.getElementById(v).style.display = 'none';}
function yes(v){document.getElementById(v).style.display = '';}

var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos){
if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=yes';
win=window.open(mypage,myname,settings);
}
//--></script>
<script language="Javascript" src="/editor/scripts/innovaeditor.js"></script>
<script language="Javascript" src="/js.js"></script>
</head>
<body bgcolor="#ffffff" text="#000000" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr><td><span class="title-top">Admin Interface</span></td></tr>
<tr><td><a href="/"><span class="title-site">OSMP-Moldova Home Page</span></a></td></tr>
<tr><td>&nbsp;<br>&nbsp;</td></tr>
</table>

<table width="100%" cellspacing="0" cellpadding="0" border="0" background="/images/admin/stab_bg.gif">
<tr height="24"><td width="40"><img src="/images/admin/spacer.gif" width="40" height="24" border="0"></td>
<td><table cellspacing="0" cellpadding="0" border="0">
<tr height="24">
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
</table>

<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr><td>&nbsp;</td></tr>
</table>


<table width="100%" height="375" cellpadding="0" cellspacing="0" border="0" bgcolor="#F6F6F6">
<tr>
<td width="5" height="5"><img src="/images/admin/corner_tl.gif" width="5" height="5" border="0"></td>
<td><img src="/images/admin/bar_t.gif" width="100%" border="0" height="5"></td>
<td width="5" height="5"><img src="/images/admin/corner_tr.gif" width="5" height="5" border="0"></td>
</tr>
<tr>
<td width="5" height="100%"><img src="/images/admin/bar_l.gif" width="5" height="100%"border="0"></td>
<td valign="top">
<table width="100%" height="100%" cellpadding="2" cellspacing="3" border="0"><tr><td valign="top">


<p></p>
</td></tr></table>
</td>
<td width="5" height="100%"><img src="/images/admin/bar_r.gif" width="5" height="100%" border="0"></td>
</tr>
<tr>
<td width="5" height="5"><img src="/images/admin/corner_bl.gif" width="5" height="5" border="0"></td>
<td><img src="/images/admin/bar_b.gif" width="100%" height="5" border="0"></td>
<td width="5" height="5"><img src="/images/admin/corner_br.gif" width="5" height="5" border="0"></td>
</tr>
</table>
</body>
</html>
"

Почему у меня тут присутствует html код? 0_о и что за иероглифы вначале?
Подскажите возможный путь решения этой проблемы!
Заранее спасибо!
 

Serguitar

Новичок->продвинутый
А это точно ВСЁ, что есть в вашем скрипте? Может ещё что-нибудь забыли показать?
 

DiMoN_TD

Новичок
Да, точно у меня только это подгружается в модуле. Больше ничего лишнего нет.
ВОпрос, что может влиять на такой вывод в excel файл?
 

Serguitar

Новичок->продвинутый
А попробуй после
$xls->close();
поставить
exit();
Такой вывод может быть если вместе с данными в ексель-файл попадает и html твоего сайта. Ты ничего знакомого в html-коде не находишь?
 

DiMoN_TD

Новичок
Serguitar
да, я тебя понял :)
Впринципе после подгрузки модуля идет подгрузка самой страницы. Значит грубо говоря мне нужно выполнять этот скрипт на "голой" странице, правильно? ОК, завтра попробую, большое спасибо. Ну это был первый вопрос. Второй вопрос - ведь в любом случае вот тех каракулей вначале не должно быть, а должен быть читабельный текст. Что в этом случае можете посоветовать?
 

x-yuri

Новичок
Что в этом случае можете посоветовать?
могу посоветовать посмотреть какой-нибудь excel-файл в обычном текстовом редакторе. Хотя некоторые excel-файлы могут быть вполне себе читабельные, насколько я знаю
 

Serguitar

Новичок->продвинутый
2DiMoN_TD
каракули - это бинарный код, который генерит либа. Поковыряй её код, познавательно.
Когда сделаешь все правильно - будет нормальный читабельный текст.
2x-yuri
Spreadsheet_Excel_Writer генерит бинарник. Открыть конечно в текстовом редакторе можно, но едва ли это о чем-то расскажет.
 

DiMoN_TD

Новичок
Serguitar
каракули - это бинарный код, который генерит либа. Поковыряй её код, познавательно.
Хм.. ну в общем-то я и поставил эту либу, чтобы самому не париться по поводу генерации бинарника.

Когда сделаешь все правильно - будет нормальный читабельный текст.
А что может быть НЕправильным? :)

В общем завтра гляну, отпишусь потом о результатах. Спасибо :)
 

DiMoN_TD

Новичок
Ну собственно у меня лишь получилось убрать html код, а то что выше, до сих пор осталось :( никакие кодировки не помогают :(

Вот такая вот дрянь выскакивает:

\РПаЎ±б;юя юяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя

юяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя l ЙBд Binary Count=ј%r8X"1ИяђArial1ИяђArial1ИяђArial1ИяђArial1ИяђArial1И ђArialахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А а А а А “Ђя’в8яяяяяяяяяяяяЂЂЂЂЂЂЂЂЂАААЂЂЂ™™я™3fяяММяяffяЂЂfМММяЂяяяяяяЂЂЂЂЂяМяМяяМяМяя™™Мяя™ММ™яяМ™3fя3ММ™МяМя™яfff™–––3f3™f333™3™3f33™333…3 Binary Count
l Й*+Ђ‚ЃБѓ„&и?'и?(р?)р?Ў"dXXа?а?
р?$@&@Y@@Y@Ђ[@А[@@Џ@ HЏ@
ђЏ@>
¶
Root Entryяяяяяяяя АFЂХе }‹ЙЂХе }‹ЙBook
яяяяяяяяяяяя АFФюяяяюяяяюяяяэяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя

-~{}~ 10.02.09 14:41:

Или вот.. попробовал такой код:

PHP:
<?
require_once 'Spreadsheet/Excel/Writer.php';

// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();

// sending HTTP headers
$workbook->send('test.xls');

// Creating a worksheet
$worksheet =& $workbook->addWorksheet('My first worksheet');

// The actual data
$worksheet->write(0, 0, 'Name');
$worksheet->write(0, 1, 'Age');
$worksheet->write(1, 0, 'John Smith');
$worksheet->write(1, 1, 30);
$worksheet->write(2, 0, 'Johann Schmidt');
$worksheet->write(2, 1, 31);
$worksheet->write(3, 0, 'Juan Herrera');
$worksheet->write(3, 1, 32);

// Let's send the file
$workbook->close();
?>
Но опять же получается вот такой бред:

\РПаЎ±б;юя

юяяяяяяяяя

 Name Age
John Smith>@Johann Schmidt?@ Juan Herrera@@>
¶
Root Entryяяяяяяяя
яяяяяяяяяяяя
 

Serguitar

Новичок->продвинутый
error_reporting включен? Неужели такая вот фигня и ни одного слова ошибки?
 

DiMoN_TD

Новичок
Тэк-с. Покапался в логах, обнаружил вот такую муйню при выполнении скрипта.

PHP Warning: Cannot modify header information - headers already sent by (output started at /usr/local/share/pear/Console/Getopt.php:1) in /usr/local/share/pear/Spreadsheet/Excel/Writer.php on line 67
PHP Warning: Cannot modify header information - headers already sent by (output started at /usr/local/share/pear/Console/Getopt.php:1) in /usr/local/share/pear/Spreadsheet/Excel/Writer.php on line 68
PHP Warning: Cannot modify header information - headers already sent by (output started at /usr/local/share/pear/Console/Getopt.php:1) in /usr/local/share/pear/Spreadsheet/Excel/Writer.php on line 69
PHP Warning: Cannot modify header information - headers already sent by (output started at /usr/local/share/pear/Console/Getopt.php:1) in /usr/local/share/pear/Spreadsheet/Excel/Writer.php on line 70
PHP Warning: Cannot modify header information - headers already sent by (output started at /usr/local/share/pear/Console/Getopt.php:1) in /usr/local/share/pear/Spreadsheet/Excel/Writer.php on line 71

-~{}~ 10.02.09 15:58:

Кстати
Попробовал вот такой код пихнуть:

PHP:
<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer('test.xls');
$worksheet =& $workbook->addWorksheet('My first worksheet');
if (PEAR::isError($worksheet)) {
    die($worksheet->getMessage());
}
$workbook->close();
?>
Но результатом выполнения стал лишь один символ: "\"
Откуда он взялся, я без понятия :(
Но кроме этих ошибок, больше никаких других нет. Странно вообще.. не вдуплю никак с какой стороны искать проблему.
 

Serguitar

Новичок->продвинутый
Эмм... Вообще-то этот символ "\" у тебя везде идет первым номером, не заметил? В каждом примере твоих иероглифов.
Код не трогал пеаровский? Сделай поиск по коду.
 

DiMoN_TD

Новичок
Serguitar
тоже на это подозрение.. хотя вроде бы ничего не трогал в том коде. сейчас гляну.

-~{}~ 10.02.09 17:33:

Ура!!!
Каким-то боком действительно в этом файле /usr/local/share/pear/Console/Getopt.php первым символом закралась "\"

Спасибо.. теперь и xls файл нормально формируется..
 

Keaton

Новичок
Cannot modify header information - headers already sent
У тебя заголовки http уже посланы. При этом ты еще посылаешь заголовок для xsl. Поэтому и получается такая лабуда при чтении.
Попробуй перед генерацией xsl очистить буфер функцией
PHP:
ob_end_clean();
 

tz-lom

Продвинутый новичок
Keaton
уникальный пример врыва на форум ради КО и некропостинга
 

Keaton

Новичок
Ну извините - я просто хотел помочь. Проблема вроде бы еще не решена...
 
Сверху