-
- 18 Posts
Подскажите, пожалуйста, как вывести ресурс в формате xls?
В настройках ресурса есть опция Content-type: vnd.ms-excel, но этого явно недостаточно. Как правильно сформировать содержимое ресурса, чтобы получить корректный файл Excel 2003?
Я пробовал размечать ресурс в виде xml (формат подсмотрел у файлов, экспортирвоанных Экселем в xml), но в результате получаем либо файл *.xls, который требует дополнительного импорта в Эксель, либо файл *.xlsm, который открывается только в 2007-ом Офисе.
-
- 630 Posts
Quote from: tambourine at Sep 16, 2010, 11:21 AM
Подскажите, пожалуйста, как вывести ресурс в формате xls?
...
Я пробовал размечать ресурс в виде xml (формат подсмотрел у файлов, экспортирвоанных Экселем в xml), но в результате получаем либо файл *.xls, который требует дополнительного импорта в Эксель, либо файл *.xlsm, который открывается только в 2007-ом Офисе.
В своё время
из PHP формировал Excel-файл накладной по шаблону следующим образом (в MODx тот же код помещаем в сниппет):
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename=filename.xls');
(предоставим определение типа браузеру по расширению)
А файл отдавал в html-формате (в Excel меню файл - сохранить как - HTML документ) - внутри должно быть похоже на:
<html xmlns:o=”urn:schemas-microsoft-com:office:office”
xmlns:x=”urn:schemas-microsoft-com:office:excel”
xmlns=”http://www.w3.org/TR/REC-html40″>
...
Открывается на всех (проверял на XP,2003,2007.. думаю, и с более ранними проблем не возникнет) версиях Excel как из браузера напрямую так и после сохранения.
Как вариант (если по какой-либо причине не подойдет), можно попробовать готовые
PHP-классы для работы с Excel
-
- 18 Posts
Большое спасибо! Действительно, работает. Я и не думал, что это так просто.
-
- 18 Posts
Обнаружилось, что в OpenOffice подобным образом сгенерированные файлы открываются в неверной кодировке. Подскажите, как правильно задать кодировку?
-
- 630 Posts
Quote from: tambourine at Sep 20, 2010, 09:55 AM
Обнаружилось, что в OpenOffice подобным образом сгенерированные файлы открываются в неверной кодировке. Подскажите, как правильно задать кодировку?
В HTML по идее как-то так задается
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
вместо text/html по идее должно быть application/vnd.ms-excel..
Как альтернативный вариант - текстовый (.xls) файл полученный после экспорта (пере)сохранить в кодировке UTF-8(или 1251 - какая нужна?) (я обычно использую notepad++) и работать уже с ним..
-
- 18 Posts
Спасибо. Правильный мета-тег будет таким (сайт у меня в utf-8):
<meta http-equiv="Content-Type" content="application/vnd.ms-excel; charset=utf-8" />