Генерация Excel, word файлов php

rend

Новичок
Генерация Excel, word файлов php

Здравствуйте!

Появилась странная проблема при генерации файлов Excel, Word из PHP скрипта:
Генерирую путём задания header

PHP:
header("Content-Type: application/vnd.ms-word; charset = windows-1251\r\n");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Transfer-Encoding: binary");
Иногда при генерации таблиц с определённой длинны строки таблицы выводятся абракадаброй, либо в кодировке отличной от указанной.

Как правильно указать кодировку, которую excel (word) будет корректно воспринимать???
 

Фанат

oncle terrible
Команда форума
а ворд воспринимает кодировку из НТТР заголовков? Как интересно!

-~{}~ 22.06.07 10:37:

либо в кодировке отличной от указанной.
а данные-то ты в файл пишешь в "указанной кодировке"?
 

rend

Новичок
1. А как ворду правильно передать кодировку документа???

2. Есть некий скрипт, генерирующий ведомость, он инклудится в интерфейсе системы (всё выводится замечательно, с кодировкой проблем нету), есть кнопка "ЭКСПОРТ", при нажатии на которую он инклудится в скрипте экспорта который выглядит
PHP:
<?
header("Content-Type: application/vnd.ms-word; charset = windows-1251\r\n"); 
header("Content-Disposition: attachment; filename=$filename"); 
header("Content-Transfer-Encoding: binary");

include($filename);

?>
причём если задавать заголовки
как
PHP:
header("Content-type: TEXT");
header("Content-Disposition: attachment; filename=$na_htm");
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">';
то есть экспортировать в html, то всё замечательно, если в M$ то возникают проблемы.

Например, есть ведомость, в которой в первой колонке ячейки состоят из 4 слов, если обрезать до 3 слов то кодировка выводится нормальная, если 4 то абракодаброй выводится вся ведомость....
 

oracloid

совсем кукус
а ты не забыл в документе кодировку указать?

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">

-~{}~ 22.06.07 10:57:

у меня все нормально, все по-русски.

код на JSP:
PHP:
<%
  response.setContentType("application/msword");
  Long msec = new Long((new java.util.Date()).getTime());
  response.setHeader ("Content-Disposition", "attachment;filename=\""+ msec.toString() +".doc\"");
%>
Response Headers:

Cache-Control private
content-disposition attachment;filename="1182495123217.doc"
Transfer-Encoding chunked
Content-Type application/msword
Server Oracle-Application-Server-10g/9.0.4.1.0 Oracle-HTTP-Server OracleAS-Web-Cache-10g/9.0.4.1.0 (N)
Connection Keep-Alive
Keep-Alive timeout=5, max=999
Date Fri, 22 Jun 2007 06:52:01 GMT
 

rend

Новичок
Спасибо огромное....
после приведения кода к виду
PHP:
	header("Content-Type: application/vnd.ms-excel; format=attachment; "); 
	header("Content-Disposition: attachment; filename=$na_xls");
	header("Content-Transfer-Encoding: binary");
echo '<meta http-equiv=Content-Type content="text/html; charset=windows-1251">';
всё заработало корректно!!!
СПАСИБО!!!
 
Сверху