<rmcreative>

RSS

Простой способ создать XLS

3 октября 2008

Есть очень простой способ создать MS Excel табличку. Достаточно записать в file.xls HTML-код:

<table>
  <tr>
    <th>Заголовок 1</th>
    <th>Заголовок 2</th>
    <th>Заголовок 3</th>
  </tr>
  <tr>
    <td>Данные 11</td>
    <td>Данные 12</td>
    <td>Данные 13</td>
  </tr>
  <tr>
    <td>Данные 21</td>
    <td>Данные 22</td>
    <td>Данные 23</td>
  </tr>
</table>

Комментарии RSS

  1. №682
    FX Poster
    FX Poster 04.10.2008, 1:07:43

    А не лучше просто обойтись csv? :)

  2. №683
    Егор
    Егор 04.10.2008, 1:08:01

    Удобно для простых таблиц, в ячейки можно даже формулы записывать. При помощи ~~~ [html] Данные ~~~ можно изменять форматирования, работает также объединение ячеек "colspan" и "rowspan"

  3. №686
    Nalivaeff
    Nalivaeff 04.10.2008, 6:24:05

    А помойму легче открыть MS EXEL и ручками вбить данные и значения ИМХО

  4. №688
    Егор
    Егор 04.10.2008, 11:46:07

    Этот способ можно применять для быстрой генерации несложных отчетов, ну или Екселя под рукой нет, всякое бывает

  5. №689
    Sam
    Sam 05.10.2008, 13:36:03

    FX Poster

    В CSV не выйдет сделать хоть какое-то форматирование.

    Nalivaeff

    Ага, перебейте руками 200 строчек лога из базы :)

  6. №690
    asda
    asda 05.10.2008, 16:10:42

    это нужно для дампа инфы с сайтов (аля "сохранить в формате Excel")

  7. №691
    Bolzamo
    Bolzamo 05.10.2008, 23:44:10

    Exel реально кушает HTML???? о_О

  8. №692
    Денис Радченко
    Денис Радченко 06.10.2008, 3:24:54

    С CSV есть свои грабли, их есть несколько видов (разделен ",", ";" и т.д.).

    Спасибо за рецепт.

    Nalivaeff А если Excel'я нет? У меня скрипты выполняются под FreeBSD, где никакого Экселя нет и в помине.

  9. №693
    fazeful
    fazeful 06.10.2008, 14:22:47

    Пригодится, спасибо!

  10. №696
    webveter
    webveter 07.10.2008, 11:43:49

    Делаю немного не так. Но принцип схлжий. Описал в своем блоге в посте MS Word и web-фреймворк. Продолжение

  11. №732
    Dr.Death
    Dr.Death 17.10.2008, 22:42:32

    спасибо, может быть пригодится

  12. №755
    BegemoT
    BegemoT 23.10.2008, 11:14:44
    header('Content-type:application/vnd.ms-excel');

    тогда ненадо создавать никакой файл а кормить как обычную html страницу

  13. №913
    mister
    mister 28.11.2008, 23:47:35

    В таком способе больше всего не нравится то, что не видна разлиновка. Если поставить border=1 - то граница будет только в пределах данных.

    Сегодня увидел способ поинтереснее и попроще: Просто текстовой файл с именами колонок и значениями, всё разделено табуляциями. Поддерживает формулы. Дла русского желат. UTF8.

  14. №914
    mister
    mister 28.11.2008, 23:48:33

    .xsl конечно.

  15. №937
    степан
    степан 05.12.2008, 9:57:06

    эксель понимает html, если его переименовать в эксель?

    А в случае header('Content-type:application/vnd.ms-excel') какое имя файла будет предлагать браузер по-умолчанию?

  16. №1060
    mamay
    mamay 09.01.2009, 13:30:59

    какое имя файла будет предлагать браузер по-умолчанию?

    то какое укажешь в Content-Disposition

  17. №1476
    Василич
    Василич 10.04.2009, 10:23:22

    Сам давно пользуюсь этим методом.

    Рекомендация: нарисуйте отчет (или то, что хотите получить) в самом Excel'е, сохраните как HTML и используйте этот код как шаблон (с соотв. доработкой). Так можно генерить очень сложные вещи, включая графические элементы.

  18. №2121
    Иван
    Иван 24.12.2009, 5:18:56

    Есть проблемы с кодировками: Excel отказался открывать UTF-8 без BOM, OpenOffice открыл только UTF-16. Поэтому лучше сохранять табличку в цельном HTML с указанием кодировки в мета-теге. Обе программы открывают на ура, для OO можно задать расширение ods.

    <html>
    <head>
     <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
    </head>
    <body>
    <table>
     <tr>
      <th>Заголовок 1</th>
      <th>Заголовок 2</th>
      <th>Заголовок 3</th>
     </tr>
     <tr>
      <td>Данные 11</td>
      <td>Данные 12</td>
      <td>Данные 13</td>
     </tr>
     <tr>
      <td>Данные 21</td>
      <td>Данные 22</td>
      <td>Данные 23</td>
     </tr>
    </table>
    </html>
  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.