Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
29 Апрель 2009

Простая конвертация xls в html

posted in Полезности, Программирование |

Задачка нарисовалась — из xls файлика перетащить таблицу в CMS-ку (как оказалось не тривиальная).

Из EXEL-а экспорт в html даёт просто безобразный код с кучей лишнего и абсолютно ненужного форматирования. Копипаст в редактор — тоже самое.

Руками делать — не вариант 🙂

Немного погуглив всё же нашел IMHO красивый вариантик (на сеарчэнжине)

Допустим в  ячейках A1, B1, C1, D1 находятся данные которые нужно экспортировать.

В результирующей ячейке (напр. F1)  вводим формулу
=СЦЕПИТЬ(«<tr>»;»<td>»;A1;»</td>»;»<td>»;B1;»</td>»;»<td>»;C1;»</td>»;»<td>»;D1;»</td>»;»</tr>»)

После чего выделяем ячейку с введенной формулой и протаскиваем её на все строки — полученное копируем и вставляем в html редактор.

Конечно теги <table></table> дописываем в ручную.

После чего доводим до ума табличку уже в редакторе.

Для LibreOffice Calc используем символ конкатенации — амперсанд & (может и в Excel сработает)

P.S.

Раз уж поставил метку «полезняшки» — посоветую полезную для верстки мини-прогу ColorSpy.

Прога работает как «пипетка» в графических редакторах, но прямо в винде — вытаскивает RGB код цвета любого участка рабочего стола.

У нас 14 комментариев на запись “Простая конвертация xls в html”

Почему бы Вам не высказать своем мнение! Позвольте нам узнать, что Вы думаете...

  1. 1 On 30.04.2009, Freebies said:

    Вар 1. Save as — Web Page (получаем HTML на выходе).
    Вар 2. Экспорт в текстовый файл. И затем собственный конвертор в HTML.

  2. 2 On 30.04.2009, GTAlex said:

    про 1й вариант я написал — там код получается такой, что проще руками сделать всю табличку, чем его переделывать
    2й вариант конечно присутствует — тоже хотел про него запостить — но имхо это не простой метод 🙂

  3. 3 On 30.04.2009, Кирюха базарный said:

    Угу. Добавь еще table и /table в отдельные ячеки и приклеивай их =)
    Вот когда из пдф-а руками таблицу в эксель перекидываешь — вот это настоящий гемор. Если целиком скопировать попытаешься, то обязательно что-нить слетит и тп, так что по столбикам. А еще в таблицах попадались значения аля: 32х45 — которые надо было на 2 ячейки разбивать. Сначала трахался с if-ами, потом пришел к более простому варианту: блокнот «bred». Там можно в окошко на что заменять таб или ентер пихнуть 🙂

    А вообще экспорт из экселя реализуется в две строки. Сначала экселевский файл сейвиш как csv (откроешь из блокнота и поймешь фишку), а дальше:
    $a=file(‘exel.csv’);
    for($i=0;$i<sizeof($a);$i++) $b[$i]=explode(‘;’,$a);

    $b — выходной массив

  4. 4 On 03.05.2009, galex said:

    Такое простое решение, как я не додумался)))
    В своё время писал программу, через OLE-объекты взаимодействующую с excel-файлом и генерирующую выходные файлы, а всего-то и стоило сцепить….)

  5. 5 On 04.05.2009, Аркадий said:

    Отличное решение! До этого у меня никак не получалось осуществить подобное! Теперь получилось!

  6. 6 On 21.05.2009, ToR4 said:

    ох.. очень большое спасибо 🙂 по работе часто приходиться таскать таблички из «проклятого» екселя. О таком простом решении даже не догадивался 🙂 немного доработал и теперь получаеться таблица сразу с нужной мне разметкой и стилем, если интересуетесь — могу скинуть конечный результат

  7. 7 On 21.05.2009, Лука said:

    Спасибо,за код,а то ручками замучился таскать

  8. 8 On 24.05.2009, Фридрих said:

    Кирюха базарный — а ведь дело говоришь! Работает твой код — респектище чувак!

  9. 9 On 06.06.2009, Igorasha said:

    Неплохо придумал. Уже опробывал, молодец что до такого додумался.

  10. 10 On 06.06.2009, Always last said:

    Самое обсуждаемое на блогах:
    Самоубийство Дэвида Кэррадайна
    Рок-музыкант Жан Сагадеев покончил с собой
    Слухи о ртутном облаке

  11. 11 On 26.10.2010, Развлекалово said:

    Спасибо!!! Работает!!!

  12. 12 On 03.05.2012, Дмитрий said:

    Я не разбираюсь в Excel, совсем! Помогите плиз…

    Это куда нужно вносить?
    $a=file(‘exel.csv’);

    for($i=0;$i<sizeof($a);$i++) $b[$i]=explode(';',$a);

    $b — выходной массив

  13. 13 On 09.11.2012, Lena said:

    О, спасибо )) Работает )

  14. 14 On 11.12.2012, Саша said:

    Гениально! =)

Оставить комментарий