We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 29257
    • 18 Posts
    Подскажите, пожалуйста, как вывести ресурс в формате xls?
    В настройках ресурса есть опция Content-type: vnd.ms-excel, но этого явно недостаточно. Как правильно сформировать содержимое ресурса, чтобы получить корректный файл Excel 2003?

    Я пробовал размечать ресурс в виде xml (формат подсмотрел у файлов, экспортирвоанных Экселем в xml), но в результате получаем либо файл *.xls, который требует дополнительного импорта в Эксель, либо файл *.xlsm, который открывается только в 2007-ом Офисе.
      • 9085
      • 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
        Правильно заданный вопрос повышает вероятность получения нужного ответа.
        Что-то не работает? Загляните в лог ошибок!
        Есть проблема? "Локализуйте" её!
        Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
        • 29257
        • 18 Posts
        Большое спасибо! Действительно, работает. Я и не думал, что это так просто.
          • 29257
          • 18 Posts
          Обнаружилось, что в OpenOffice подобным образом сгенерированные файлы открываются в неверной кодировке. Подскажите, как правильно задать кодировку?
            • 9085
            • 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++) и работать уже с ним..
              Правильно заданный вопрос повышает вероятность получения нужного ответа.
              Что-то не работает? Загляните в лог ошибок!
              Есть проблема? "Локализуйте" её!
              Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
              • 29257
              • 18 Posts
              Спасибо. Правильный мета-тег будет таким (сайт у меня в utf-8):
              <meta http-equiv="Content-Type" content="application/vnd.ms-excel; charset=utf-8" />