Веб-сайт с минимальными затратами: учебник HTML

Глава 2. Прайс-лист. Таблицы и архивы

Глава 2. Прайс-лист. Таблицы и архивы

Вы, несомненно, уже заметили слабое место в наших построениях: обновления прайс-листа. С другими страничками всё более-менее понятно: при необходимости всегда можно дописать в файл «requisit.html», хранящийся на вашем компьютере, несколько строк «руками» и закачать этот обновлённый файл на сервер. То же самое и с адресами и телефонами. Но по-другому - с прайс-листом. Потому что он а) большой, б) требует обновления чаще, чем адрес и телефон, в) хранится вовсе не в виде текстового файла, и как его преобразовывать в нужный для веб-странички вид, не известно.

Примем за стандартный формат прайс-листа лист MS Excel. Все «нестандартные» прайс-листы должны быть к нему сводимы. А «нестандартные» - это исходные списки товаров и цен, хранящиеся в справочниках бухгалтерских программ, которые мы для простоты будем считать одной программой - «1С:Торговля и склад» (или просто - «1С»). Таким образом, задача сводится к тому, чтобы из справочника (или, точнее, отчёта) «1С» прайс-лист попал в MS Excel, а оттуда - на веб-сайт.

1С - Excel

Если у вас «1С» версии 7.7, то вы, сформировав нужный отчёт по товарам, можете сохранить его (через меню «Файл» - «Сохранить как») прямо в формате MS Excel.

1c1.gif

Если у вас «1С» версии 7.5 (и ниже), то вы можете сохранить отчёт только в формате таблицы «1С» - в файле «*.mxl». Существует специальная утилита (программа), позволяющая MS Excel корректно открывать файлы «*.mxl», она доступна на сайте в каталоге «soft» (каталог «1c_excel»), а также по адресу http://ir2.ru/html/omne/soft/1c_excel.zip. Скопируйте каталог «1c_excel» к себе на компьютер и установите программу. После этого можно открыть файл «*.mxl» программой MS Excel и сохранить в формате «Книга Microsoft Excel». Но не всегда. Если вы открыли файл «*.mxl» программой MS Excel, но видите безобразно большое количество ненужных значков, значит, у вас Excel (и вообще MS Office) старше версии 97, и старенькая утилита «1c_excel» для него не годится.

Что же делать в этом случае? Я мог бы ответить: «Какого рожна у вас старая (добрая) «1С» и такой суперновый «Офис»?! Делайте, что хотите!» Но я так не скажу, потому что люблю всегда добиваться цели, какой бы трудной она ни казалась. Во-первых, попробуйте попросить совета у продавца «1С», у которого вы купили бухгалтерскую программу. Может быть, он предложит вам более современную утилиту для распознавания формата «*.mxl». Но это, конечно, мало вероятно. Правильнее даже сказать, что вероятность этого события граничит с чудом. Скорее уж, продавец «1С» предложит вам купить более новую версию своей программы. Гораздо проще попросить программиста (или администратора), обслуживающего «1С», чтобы он запрограммировал кнопку, позволяющую сохранять отчёт в обычном текстовом файле с разделителями-табуляциями - такой файл Excel понимает легко.

Если всё же вам не удалось получить помощь у других людей, у вас всегда остаётся ultima ratio (последнее, «непробиваемое» средство) - обычное копирование информации из одной программы в другую через буфер обмена Windows. Выделите нужный фрагмент товарного отчёта «1С» с помощью мышки (или с помощью клавиши Shift и стрелок), выберите в меню «Действия» пункт «Запомнить» (или просто нажмите «Ctrl+C»), перейдите в программу MS Excel, выберите в меню «Правка» пункт «Вставить» (или просто нажмите «Ctrl+V»), затем, наконец, сохраните с таким трудом добытую информацию в файл с именем «price.xls». Для удобства в дальнейшей работе мы будем считать, что вы во всех вариантах сохраняете свой прайс-лист под именем «price.xls».

1c2.gif

Excel - HTML

Последующий путь прайс-листа к веб-серверу может быть различным. Если в файле «price.xls» не больше 300 строк, можно попробовать сохранить его в HTML-формате с помощью надстройки MS Excel «priceH.xla» (которая доступна на сайте в каталоге «soft», а также по адресу omne/soft). Надстройка «priceH.xla» устанавливается так:

  • скопируйте файл «priceH.xla» к себе на компьютер, например, в папку «Мои документы\Omne»;
  • в меню Excel «Сервис» выберите пункт «Надстройки» - «Обзор», в открывшемся диалоговом окне найдите папку «Мои документы\Omne» и выберите файл «priceH.xla»;
  • excel1.gif
  • теперь если в списке надстроек «priceH» отмечен галочкой, значит, надстройка активна: в меню «Файл» MS Excel должен появиться пункт «toHTML».
excel2.gif

Надстройка «priceH» требует соблюдения некоторых условий для работы:

  • в файле, который вы хотите сохранить как HTML (например, «price.xls»), над таблицей (собственно прайс-листом) в самой первой ячейке (или в объединении ячеек) должен быть заголовок таблицы (например, «Прайс-лист торговой группы «Omnia»»);
  • excel3.gif
  • перед записью файла HTML с помощью меню «Файл» - «toHTML» ячейке с заголовком таблицы («Прайс-лист торговой группы «Omnia»») надо присвоить имя «table» (строка имён находится в Excel слева от строки формул, там обычно показывается адрес ячейки - что-нибудь вроде «R6C3», вот туда и надо записать вместо адреса слово «table»);
  • или выделить диапазон ячеек таблицы вручную (начиная с заголовка таблицы и заканчивая последней ячейкой таблицы);
  • чтобы сохранённый файл «price.html» выглядел прилично, рядом с ним, в том же каталоге, должен находится файл «dn.css» (скопируйте его с сайта или сохраните со странички omne/soft); на всякий случай процедура экспорта «toHTML» всегда записывает рядом с файлом html файл dn.sam с таким содержимым, какое должно быть в файле dn.css: если вы случайно уничтожили файл dn.css (или у вас просто его нет), можно просто переименовать файл dn.sam в dn.css;
  • к сожалению, в алгоритм экспорта в html-файл не включена обработка ячеек, объединённых по вертикали, поэтому таких объединений лучше в прайс-листах Excel'а избегать.

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

Ладно, будем считать, что вы успешно поэкспериментировали и в итоге вам (с помощью пункта «toHTML» в меню «Файл») удалось сохранить свой (или выбранный для примера) прайс из MS Excel в формат HTML. Надстройка сохраняет html-файл с тем же именем, что и файл MS Excel, и в ту же папку, где находится исходный файл xls. Посмотрите теперь, сколько места занимает файл «price.html» (правой кнопкой мыши - «Свойства»). Если больше 100 килобайт, я бы не стал выкладывать его на сервер. Но вы можете попробовать.

***

Примечание. При сохранении из MS Excel с помощью предлагаемой надстройки «priceH», файл html получается по размеру примерно в два раза меньше, чем исходный файл xls. В MS Excel есть встроенное средство для сохранения файлов в HTML-формате; если использовать это средство, файл html получается по размеру примерно в два раза больше, чем файл xls (что совершенно лишает смысла преобразование формата xls в html). Другое преимущество надстройки «priceH» - возможность изменять оформление прайс-листа с помощью небольшой внешней таблицы стилей («dn.css»).

Excel - zip

Предположим, что мы всё-таки получили отрицательный результат: файл «price.xls» занимает примерно 500 Кб, а файл «price.html» получился около 300 Кб. Ни тот, ни другой выкладывать на сервер для просмотра не целесообразно. Но можно выложить тот или другой файлы на сервер для скачивания. Только предварительно выбранный файл необходимо заархивировать. Упаковать с помощью архиватора Winzip или Winrar. Winrar сжимает сильнее, но архивы zip фактически являются стандартом (отчасти потому, что архивы RAR более ранних версий не могут работать с более новыми архивами, а старые ZIP - могут: если вы упакуете файлы в архив новейшим архиватором Winrar, пользователи с более старым архиватором не смогут извлечь файлы обратно, а если новейшим архиватором Winzip, то пользователи распакуют их любой самой старой версией zip-архиватора). Обе программы платные. Условно.

Если у вас уже есть Winrar, можете пропустить описание работы с архиваторами. Если нету, можете установить архиваторы, не требующие лицензирования, с сайта (каталог soft/arc) или скачать со странички omne/soft/arc. На выбор. Самый «простой» вариант (похожий в использовании на Winzip и Winrar) занимает больше всего места и устанавливается запуском файла powarc61.exe (2087 Кб). Более сложный (для настройки) вариант занимает меньше места и позволяет упаковывать файлы быстрее, технологичнее - устанавливается запуском файла pacl20.exe (474 Кб). Его надо рассмотреть подробнее.

После запуска файла pacl20.exe программа предложит вам распаковать рабочие файлы в каталог C:\Pautil. Соглашайтесь. После распаковки (это и есть установка программы), чтобы программы Pacomp и Paext могли запускаться из любого каталога компьютера, путь к ним надо занести в системную переменную Path. Доступ к ней можно получить так: щёлкните правой кнопкой мыши по папке «Мой компьютер», выберите из выпавшего меню «Свойства»:

pa1.gif

затем вкладку «Дополнительно» и кнопку «Переменные среды»:

pa2.gif

В разделе «Системные переменные» найдите Path, щёлкните по ней двойным щелчком

pa3.gif

и в открывшемся окне аккуратненько, стараясь ничего нужного не удалить, в самый конец строки, через точку с запятой запишите:

;C:\PAUTIL

Если, по-вашему, вы ничего такого нечаянно не удалили, нажимайте «ОК» (три раза в трёх последовательно закрывающихся окнах), после чего необходимо перезапустить систему. Или завершить сеанс пользователя и снова открыть сеанс (если знаете, как).

Утилиты Pacomp и Paext запускаются «из командной строки», поэтому для их использования нужно ещё и знать, где находится эта самая командная строка. Один из вариантов командной строки находится в кнопке «Пуск» - «Выполнить». Команда, которая упакует файл price.xls в архив price.zip с помощью программы Pacomp, будет выглядеть так:

pacomp.exe -a price.zip price.xls

Команда означает следующее: «-a» - от английского «add» - добавить, слово «price» через пробел после «-a» - имя архива zip, в который будет добавляться файл (если вы назначите файлу другое расширение, например, .rar, то Pacomp создаст архив RAR), и в конце - «price.xls» - имя файла, который надо добавить в архив.

Если вы наберёте её в командной строке «Пуск» - «Выполнить», то ничего не получится. Потому что на вашем компьютере может лежать много файлов price.xls в разных каталогах. О каком из них идёт речь? Вам нужно как-то запустить командную строку именно в папке «Мои документы» (или в другой, где надо создать архив). Это можно сделать с помощью bat-файла.

Щёлкните правой кнопкой мыши в свободном месте открытой папки «Мои документы» (или той папки, где у вас лежат файлы для упаковки - price.xls и другие); выберите из выпавшего меню «Создать» - «Текстовый документ» - «Enter» - «Enter».

В открывшемся в программе «Блокнот» документе наберите нужную команду:

pacomp.exe -a price.zip price.xls

А лучше ввести в команду полный путь к файлу pacomp.exe (вдруг вам не удалось записать этот путь в системную переменную Path), команда получится немного длиннее, зато надёжнее:

C:\pautil\pacomp.exe -a price.zip price.xls

Выберите в меню «Блокнота» «Файл» - «Сохранить как», введите (в кавычках!) имя сохраняемого файла: "pricezip1.bat", «Сохранить». Теперь двойным щелчком по новому файлу «pricezip1.bat» (он может выглядеть у вас просто как «pricezip1») вы можете создать архив «price.zip», в котором будет упакован файл price.xls.

Вы можете также создать другие bat-файлы для других архивов, например, pricezip2.bat - для архивирования html-файла. Команда для упаковки в архив html-файла будет такой:

C:\pautil\pacomp.exe -a price2.zip price.html

У вас в папке для веб-публикаций становится всё больше и больше файлов, с разными расширениями. А ваша Windows, скорее всего, настроена так, чтобы эти расширения не отображать (да и файлов в окне наверняка помещается мало). Поэтому настала пора заняться настройкой вида папок.

Свойства папки

В общем случае папки с документами на компьютере должны иметь вид «Список»: ровные (более-менее) колонки строчек, содержащих наименования (и расширения!) файлов. В некоторых частных случаях (например, для папок с файлами изображений) бывает целесообразно использовать другие настройки (например, «Эскизы страниц». Чтобы привести папку с вашими html-файлами и программой Pkzip к нормальному виду, выберите в меню «Сервис» «Свойства папки»:

papka2.gif

В открывшемся окне выберите вкладку «Вид» и уберите галочку в пункте «Скрывать расширения зарегистрированных типов файлов»:

papka3.gif

Если значки в папке выглядят слишком крупными, а названий документов почти не видно, выберите в меню папки «Вид» - «Список»:

papka5.gif

Всё, теперь можно продолжить работу с архивами.

Не забудьте добавить в архив файл с файлом price.html ещё и файл dn.css, без которого HTML-прайс будет выглядеть странно. Для этого в файл pricezip2.bat нужно будет добавить ещё одну строку, и в целом его текст будет выглядеть так:

C:\pautil\pacomp.exe -a price2.zip price.html

C:\pautil\pacomp.exe -a price2.zip dn.css

Для извлечения файлов из архива сделайте bat-файлы с использованием программы Paext. Команда совсем простая:

C:\pautil\paext.exe price.zip

Полное описание ключей (опций) для запуска программ Pacomp и Paext можно увидеть, запустив эти программы без параметров, просто двойным щелчком по файлам pacomp.exe или paext.exe, которые находятся в папке C:\Pautil. Хотя какой смысл - в этой же папке находится файл документации Readme.txt, в котором всё написано более подробно.

Excel - Excel

Если файл «price.xls» занимает каких-нибудь 50-70 Кб, то почему нельзя именно его, без всяких преобразований, выложить на сервер? Не знаю, почему. Но мне, например, неприятно открывать через Интернет файлы Excel'а - даже при небольшом размере на их открытие уходит больше времени, чем на открытие стандартных HTML-файлов. Поэтому я предполагаю, что другим это тоже не очень приятно, и стараюсь поступать с ними так, как хотел бы, чтобы они поступали со мной. То есть не выкладываю на интернет-серверы для прямого просмотра файлы Excel.

Вы же вольны поступать, как вам хочется. Можно, например, выложить на сервер все возможные варианты вашего прайс-листа. Если указать для каждого варианта его формат («xls», «html», «xls в архиве zip», «htm в архиве zip») и размер файла, то такое решение будет вполне корректным: пользователь будет предупреждён о том, что его ожидает после щелчка по ссылке и сам выберет, что ему смотреть (или скачивать).

Содержание файла pricelist.html

Если вы помните, в файле pricelist.html у нас была записана какая-то ерунда о видеомагнитофонах импортных. Теперь для этого файла настало время выполнить своё предназначенье всерьёз. Содержанием страницы pricelist.html должен стать не собственно список товаров и цен, а несколько гиперссылок, позволяющих открыть и просмотреть прайс-лист или скачать его к себе на компьютер.

«Omina» - очень разносторонняя фирма, поэтому у неё может быть несколько прайс-листов для разного рода деятельности. Например, один прайс для склада металлопроката, а другой - для компьютерного магазина «Системные блоки». Мы так их и назвали: price1.xls и price2.xls.

ex04 Файлы примеров: prices (prices)

Предположим, что вам удалось для каждого из этих файлов создать с помощью надстройки «priceH» соответствующие файлы html: price1.html и price2.html. Файлы html мы выложим на сервер для прямого просмотра, файл price1.xls заархивируем (в bat-файл надо записать: «C:\pautil\pacomp.exe -a price1.zip price1.xls»), а вместо файла price2.xls заархивируем price2.html (bat-файл: «C:\pautil\pacomp.exe -a price2.zip price2.html», во второй строке: «C:\pautil\pacomp.exe -a price2.zip dn.css»). Для разнообразия.

Таким образом, у нас всего получилось два zip-архива (18 и 19 килобайт) и два файла html (14 и 88 килобайт). Мы должны сделать для всех них гиперссылки (с указанием типа файла и размера) и записать их коды в файл pricelist.html, ниже кода «навигационной панели», вместо текста о видеомагнитофонах импортных:

<p>

<a href="price1.html">Металлопрокат, html, 14 Kb</a> <br>

<a href="price1.zip">Металлопрокат, xls в zip-архиве, 18 Kb</a> <br>

<a href="price2.html">Компьютеры, html, 88 Kb</a> <br>

<a href="price2.zip">Компьютеры, htm в zip-архиве, 19 Kb</a>

Метка <p> в начале кода означает, что мы помещаем его в новый абзац, а новые для вас метки <br> - перевод на новую строку (чтобы ссылки на прайс-листы расположились столбиком, друг под другом).

Полный текст получившегося файла находится на сайте (\omne\text\pricelist1.txt) и по адресу omne/text/pricelist1.txt.

Теперь вы можете заново записать получившийся файл pricelist.html на свой сайт, а под именами price1.html, price1.zip, price2.html, price2.zip - свои собственные прайс-листы. Разумеется, если у вас только один прайс-лист, то файлы price2.html и price2.zip (а также ссылки на них в pricelist.html) вам не понадобятся.

ex05 Файлы примеров: htm2 (htm2)

Комментарии