Алексей Мичурин
Постановка задачи. Или в чем
проблема?
Многие веб-мастера часто сталкиваются с задачей конвертирования файлов Microsoft
Excel в другие форматы. Нередко это сопряжено с трудностями, так как формат xls,
как все прекрасно знают, не документирован.
В некоторых случаях возможно сохранение данных Excel
в документированных форматах и последующая их обработка. Но часто этот способ
работает неудовлетворительно. Простые форматы, удобные для обработки, не
способны сохранить всю информацию о форматировании документа, а реализация
обработчика сложных форматов неоправданно трудоёмка.
За примером далеко ходить не надо. Множество
фирм, которые имеют свои веб-страницы и периодически их обновляют, ведут свои
дела с использованием Excel. Перед веб-мастером при каждом обновлении
информации на сервере возникает задача конвертирования. Причём задача может
осложняться следующими аспектами:
Во-первых, это изменение дизайна. Price-list, подготовленный
в Excel, обычно рассчитан на распечатку на чёрно-белом принтере. Price-list на веб-сайте
– нет. Хотя бы поэтому простое «Сохранить как веб-страницу» не подходит (я уж
молчу о том, какого качества получается HTML-код при таком сохранении).
Во-вторых, при конвертировании необходимо учесть
специфику Excel. Например, очень многие люди, редактирующие price-list, широко
применяют команду «Формат/строка/скрыть». При этом высота строки становится
нулевой, и строка как бы исчезает с экрана и на печати. Понятно, что и на веб-сайт
такие строки попасть не должны. Однако они превосходно сохраняются в других
форматах и ничем не отличаются от обычных, не скрытых, строк. Это приводит к
тому, что доктрина «Сохранить как текст с разделителями и обработать» не даёт
удовлетворительных результатов.
В-третьих, в price-list часто используется
форматирование, сохранение которого критично. Например, наименования некоторых
товаров могут быть зачёркнуты или выделены цветом в знак того, что эти товары
были и обязательно будут, но сейчас их нет. Некоторые позиции могут быть
выделены курсивом и так далее. Вся эта информация бесследно исчезает, если пересохранить
price-list в простом формате, скажем, как текст с разделителями табуляции.
Итак, наша задача состоит в том, чтобы корректно
конвертировать документ из формата xls в формат HTML с учётом форматирования
исходного документа и при этом обойтись «малой кровью».
Я предлагаю разбить эту задачу на две. Первая –
сохранение данных в простом формате, который тем не менее будет нести в себе
всю необходимую нам информацию о разметке документа. Вторая – обработка этого
формата и создание HTML-страницы.
Первую задачу (экспорт) я предлагаю решить
средствами Excel. Тут у нас фактически нет выбора, формат xls может обработать
только то единственное на свете приложение, которое его понимает. Это
диалектика.