Хидеры для сохранения таблицы в xls.

Don Arana

Новичок
Хидеры для сохранения таблицы в xls.

Здрасте всем! :)

Вот такая ситуация - генерю средствами PHP табличку-прайс из базы. Хочу, чтобы ее можно было сохранить в *.xls (другое не предлагать!)

Пишу хидеры

header("Content-Type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: attachment; filename=Export.xls");

Опера 7.5 релиз сохраняет, правда в кривой кодировке. Все ок!
ИЕ выдает диалоговое окно сохранения, и после чего, нажав кнопку "Сохранить" выскакивает ошибка - Не удается открыть этот узел интернета.

Не подскажете как бы решить проблему? И как поправить кодировку?
Да, SpreadSheet Writer мне наверное не особо нужен. Таблица простая..

Заранее спасибо!
 

StUV

Rotaredom
т.е. - если у тебя есть файл
$file = 'file.xls';
в директории
$path_to_file = '/some_local_dir/';
то каким скриптом ты его выдашь юзеру (не пиши больше 10-15 строк - там столько нет) ?
 

Don Arana

Новичок
c кодировкой разобрался :) опера просто беза мета тега с указанием кодировка неправильно текст выдавала..

но что делать с ИЕ? все же через него лазят :(

-~{}~ 25.05.04 17:51:

StUV
у меня нет файла xls.
у меня есть динамически генерируемая страница вида catalog-xls.php

например, при запросе catalog-xls.php?group=15 она формирует таблицу с каталогом (артикул-модель-цена).

прописав эти хидеры, я добиваюсь что при запросе к catalog-xls.php?group=15 открывается диалоговое окно сохранения.

причем тут какой то $path_to_file = '/some_local_dir/'; ?

или интересует конкретно скрипт генерации таблицы? :( к чему? мне кажется дело не в нем. Ибо опера все сохраняет нормально..
 

Don Arana

Новичок
ммм.
Нет, файл в формате .html не генерю. Генерю html php-файлом и с выводом в php-файле (если без этих хидеров)

Получается - что хочу .php отдать как .xls.

Это неверно?
 

StUV

Rotaredom
я про то же =)
с твоими заголовками у меня в ИЕ6 хтмл таблица (генерируемая и выводимая .php скриптом) предлагается быть сохраненной или открытой как Export.xls

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

-~{}~ 25.05.04 18:05:

(т.е., м.б. ты используешь какие-нить шаблоны с мета-тегами, etc)
 

Don Arana

Новичок
с твоими заголовками у меня в ИЕ6 хтмл таблица (генерируемая и выводимая .php скриптом) предлагается быть сохраненной или открытой как Export.xls

ну так и должно быть! вот ты ее сохранить можешь?

сек, у меня назрело решение. Нужно по идее сделать файл с выводом этой таблицы чтобы он тоже назывался export, правда с расширением .php

-~{}~ 25.05.04 18:12:

хотя нет.. бред
 

Don Arana

Новичок
могу =)

блин, странно! виноват теперь именно мой ИЕ что ли?

-~{}~ 25.05.04 18:19:

нет, дело не только в моем ИЕ ... хмм
 

StUV

Rotaredom
1. сохрани в файл получаемый контент и view source
2. что там (общая структура документа, без подробностей)?
 

Don Arana

Новичок
view source сделал..

для этого необязательно в файл сохранять :)

В генерируемом хтмле ОДНА таблица!
Ладно, спасибо все равно, завтра еще попробую!

<table width="100%" cellpadding=2 cellspacing=0 border=0 class=txt11>
<tr>
<td width="1%" style="padding: 4 4 4 4" align=center><b><font color="#FFFFFF">#</font></b></td>
<td width="1%"><b>Артикул</b></td>
<td width="99%"><b>Название</b></td>
<td width="1%"><b>Цена</b></td>
</tr>
<tr>
.....
</tr>
 

StUV

Rotaredom
такой script.php :
PHP:
<?php 
header("Content-Type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: attachment; filename=Export.xls");
?>
<table width="100%" cellpadding=2 cellspacing=0 border=0 class=txt11>
<tr>
<td width="1%" style="padding: 4 4 4 4" align=center><b><font color="#FFFFFF">#</font></b></td>
<td width="1%"><b>Артикул</b></td>
<td width="99%"><b>Название</b></td>
<td width="1%"><b>Цена</b></td>
</tr>
</table>
тоже "не сохраняется" в ИЕ6 ?
 

Ямерт

The Old One
Главный рецепт для успешного сохранения файла - это добавлять в URL концовку типа &filename=/my_reports.xls
Попробуй - может, это то что тебе надо?
 

Don Arana

Новичок
хмм
минутку!

PHP:
<?
... инклюд авторизации, функций и констант

header("Content-Type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: attachment; filename=export.xls");
?>

<table width="100%" cellpadding=2 cellspacing=0 border=0 class=txt11>
	<tr>
		<td width="1%"  style="padding: 4 4 4 4" align=center><b><font color="#FFFFFF">#</font></b></td>
		<td width="1%"><b>Произв</b></td>
		<td width="99%"><b>Наименование.</b></td>
		<td width="1%"><b>Цена</b></td>
		<td width="1%"><b>Склад</b></td>
	</tr>
	<? while($sql = mysql_fetch_array($query)) { ?>
	<tr>
		<td><font color="BFBFBF"><b><?=$m?></b></font></td>
		<td><?=$sql['vendor']?></td>
		<td><?=$sql['name']?></td>
		<td nowrap><?=$sql['price']?> &#243;.&#229;.</td>
		<td align=center><?=$sql['store']?></td>
	</tr>
	<? } ?>
</table>
-~{}~ 25.05.04 18:46:
не сохраняется

я подумал - может причина в инклюде - там например, что-то не так? хотя глянул - на первый взгляд ничего там нет да и как бы...
 

StUV

Rotaredom
может у тебя перед хидерами какой-нить вывод в браузер присутствует ?
 

Don Arana

Новичок
такой script.php :

...

тоже "не сохраняется" в ИЕ6 ?
сохраняется!

-~{}~ 25.05.04 18:50:

Автор оригинала: StUV
может у тебя перед хидерами какой-нить вывод в браузер присутствует ?
мм, ну вроде нет! да view source по крайней мере ничего не показывает. ладно, я уже почти уверен что дело в инклюдах..
 
Сверху