как встроить живую электронную таблицу excel в html



Привет, я хотел бы знать, как я могу встроить электронную таблицу excel в веб-страницу и изменить номера excel в размещенном файле, а это, в свою очередь, автоматически изменит лист веб-страницы?

хотел бы знать, есть ли код jquery, javascript, css и т. д., Чтобы помочь мне

например, book1.xls будет загружен на сервер, а index.html будет отражать book1.xls в виде таблицы в нем. когда я обновляю book1.xls, он должен автоматически показывать в index.html измененные ячейки.

заранее спасибо

javascriptjqueryhtmlcss

Источникhsjbrk     01 августа 2011 в 07:35


3 ответа


  • Как встроить XLS в страницу Joomla?

    Мне нужно знать, как встроить электронную таблицу Excel в сайт Joomla.

  • Как импортировать электронную таблицу Excel в блог?..

    Мы заинтересованы в том, чтобы попытаться импортировать электронную таблицу Excel в наш блог. Образец электронной таблицы Excel, которую мы генерируем каждый день и хотим экспортировать в наш блог, находится по адресу: http://www.wallstreetsignals.com/WhatsWorking.html Наш блог находится по...


Самый простой способ на самом деле подключиться к XLS-через VBScript, но ваш сервер должен будет поддерживать его (что большинство и делает).

Другим способом было бы добавить ODBC к соединителям ваших серверов, указывающим на ваш XLS или MDB или любой другой файл данных Microsoft, который вы выберете, и использовать JavaScript или любое количество языков для подключения к нему, получения данных, внесения изменений и т. Д. Недостатком является то, что у вас должны быть административные права на компьютер, на котором размещен файл. Вы можете использовать домашний компьютер в качестве сервера только для этого файла, например, и связать его с вашим веб-сайтом, но это повлияет на скорость загрузки. Это, однако, потребует от вас более пристального внимания к вашей домашней интернет-безопасности...!!!...но позволит вам внести 'live' изменений, не заходя на ваш сайт. Этот метод часто используется для интернет-магазинов и онлайн-каталогов, где данные могут меняться ежедневно, но сервер базы данных нежелателен.

Самый простой и легкий способ, как уже упоминалось, заключается в использовании GoogleDocs, но для этого потребуется преобразование документа. Вы не будете использовать свой XLS в качестве файла данных. Недостатком здесь является то, что если вы внесете какие-либо изменения в автономном режиме (не через веб-сайт), изменения также не будут видны, потому что вы будете редактировать совершенно другой файл. Поэтому вам нужно будет конвертировать и загружать его в GoogleDocs каждый раз.

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

RolanDecoy     16 сентября 2012 в 12:42

Электронная таблица "live" может быть показана на веб-странице с помощью iframe, содержащей электронную таблицу Google Doc. Вы вырезаете и вставляете iframe markup из Google Docs и помещаете его на свою веб-страницу. Электронная таблица доступна для редактирования в GDocs. Представление iframe можно настроить на автоматическое обновление при редактировании ss.

Возможно, это слишком мягкое решение. Но это работает. Я использую его все время.

Tom     01 августа 2011 в 09:22

Я сомневаюсь, что вы можете сделать это непосредственно из файла .xls, но если вы сохраните файл Excel как .csv, вы сможете прочитать файл .csv через jQuery.

Здесь есть плагин, который отображает данные из файла csv в виде таблицы: http://plugins.jquery.com/project/csv2table

Тот же/аналогичный вопрос также задается в этих сообщениях:

g_thom     01 августа 2011 в 07:59





Как изменить электронную таблицу Excel без Excel, используя VBScript?

Мне нужно добавить строку в электронную таблицу с помощью VBScript на PC, на котором не установлен Microsoft Office. Я пытался [ Set objExcel = CreateObject(Excel.Application) ] Поскольку Excel не...


Как встроить файл excel на html

У меня есть файл excel, который я хочу встроить в свою веб-страницу html. Это означает, что я хочу непосредственно показать электронную таблицу на своей веб-странице в виде обычного текста, где ее...


Встроить электронную таблицу/таблицу в приложение PyGTK?

В моем приложении мы хотим представить пользователю типичную электронную таблицу/таблицу (OO.O/Excel-style), а затем вытащить значения и что-то сделать с ними внутри. Есть ли уже существующий виджет...


Как встроить XLS в страницу Joomla?

Мне нужно знать, как встроить электронную таблицу Excel в сайт Joomla.


Как импортировать электронную таблицу Excel в блог?..

Мы заинтересованы в том, чтобы попытаться импортировать электронную таблицу Excel в наш блог. Образец электронной таблицы Excel, которую мы генерируем каждый день и хотим экспортировать в наш блог,...


Есть ли способ встроить электронную таблицу в приложение android?

Я новичок в разработке android, и мой первый проект требует способа каким-то образом встроить электронную таблицу из Google docs в мое приложение. Есть ли какой-нибудь способ сделать это? Я не смог...


Встроить изображение в электронную таблицу Excel-VBA

Мне нужно встроить изображение в электронную таблицу через Excel VBA, так что всякий раз, когда я перемещаю свой файл excel, изображение все равно будет отображаться. Как я могу это сделать?


Добавление макроса в электронную таблицу Excel с Java

Я разрабатываю приложение, которое создает электронную таблицу Excel. Я использую Java с библиотекой docx4j, но у нее нет поддержки макросов, так как она не предоставляется через Open XML API. Мне...


Откройте и отобразите электронную таблицу excel в окне HTML и манипулируйте данными

Мое требование состоит в том, чтобы создать веб-страницу, где после нажатия на button/hyperlink, откроется окно на той же странице, и это окно должно показать электронную таблицу excel. Пожалуйста,...


Использование javascript в HTML для вставки данных в уже существующую электронную таблицу excel

Я создаю автоматизированный производственный график для своей работы. Наше программное обеспечение может экспортировать данные из каждого отдельного задания с помощью шаблона HTML. У нас есть...

Источник: https://coderoad.ru/6895435/%D0%BA%D0%B0%D0%BA-%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D0%B6%D0%B8%D0%B2%D1%83%D1%8E-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D1%83%D1%8E-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%83-excel-%D0%B2-html
 Дополнительные материалы

АЛЕКСЕЙ МИЧУРИН

Конвертирование из Excel в HTML:

корректно, качественно, просто

Итак, наша задача состоит в том, чтобы корректно конвертировать документ из формата xls в формат HTML с учётом форматирования исходного документа и при этом обойтись «малой кровью»

Постановка задачи. Или в чем проблема?

Многие веб-мастера часто сталкиваются с задачей конвертирования файлов Microsoft Excel в другие форматы. Нередко это сопряжено с трудностями, так как формат xls, как все прекрасно знают, не документирован.

В некоторых случаях возможно сохранение данных Excel в документированных форматах и последующая их обработка. Но часто этот способ работает неудовлетворительно. Простые форматы, удобные для обработки, не способны сохранить всю информацию о форматировании документа, а реализация обработчика сложных форматов неоправданно трудоёмка.

За примером далеко ходить не надо. Множество фирм, которые имеют свои веб-страницы и периодически их обновляют, ведут свои дела с использованием Excel. Перед веб-мастером при каждом обновлении информации на сервере возникает задача конвертирования. Причём задача может осложняться следующими аспектами:

Во-первых, это изменение дизайна. Price-list, подготовленный в Excel, обычно рассчитан на распечатку на чёрно-белом принтере. Price-list на веб-сайте – нет. Хотя бы поэтому простое «Сохранить как веб-страницу» не подходит (я уж молчу о том, какого качества получается HTML-код при таком сохранении).

Во-вторых, при конвертировании необходимо учесть специфику Excel. Например, очень многие люди, редактирующие price-list, широко применяют команду «Формат/строка/скрыть». При этом высота строки становится нулевой, и строка как бы исчезает с экрана и на печати. Понятно, что и на веб-сайт такие строки попасть не должны. Однако они превосходно сохраняются в других форматах и ничем не отличаются от обычных, не скрытых, строк. Это приводит к тому, что доктрина «Сохранить как текст с разделителями и обработать» не даёт удовлетворительных результатов.

В-третьих, в price-list часто используется форматирование, сохранение которого критично. Например, наименования некоторых товаров могут быть зачёркнуты или выделены цветом в знак того, что эти товары были и обязательно будут, но сейчас их нет. Некоторые позиции могут быть выделены курсивом и так далее. Вся эта информация бесследно исчезает, если пересохранить price-list в простом формате, скажем, как текст с разделителями табуляции.

Итак, наша задача состоит в том, чтобы корректно конвертировать документ из формата xls в формат HTML с учётом форматирования исходного документа и при этом обойтись «малой кровью».

Я предлагаю разбить эту задачу на две. Первая – сохранение данных в простом формате, который тем не менее будет нести в себе всю необходимую нам информацию о разметке документа. Вторая – обработка этого формата и создание HTML-страницы.

Первую задачу (экспорт) я предлагаю решить средствами Excel. Тут у нас фактически нет выбора, формат xls может обработать только то единственное на свете приложение, которое его понимает. Это диалектика.

Вторую задачу я предлагаю решить средствами языка Perl. Почему? Потому, что этот язык ориентирован на работу со строками и на решение задач, подобных нашей (Perl – Practical Extraction and Report Language – то, что надо). Потому, что этот язык знает достаточно много программистов, связанных с веб-разработками (если вы не относитесь к их числу и планируете заниматься web, то искренне рекомендую обратить внимание на Perl). Потому, что этот язык бесплатен и доступен любому пользователю на любой платформе. И потому, что мой код на Perl можно будет потом легко модифицировать, заставив его, допустим, помещать каждый раздел price-list в отдельный файл, различным образом сортировать позиции прайса, отслеживать обновления и динамику цен, снабжать каждую позицию полями HTML-форм для on-line заказа в веб-магазине... В конце концов, мой скрипт легко превратить в CGI-приложение для администрирования веб-сервера.

Такое решение представляется мне максимально гибким, функциональным и компактным, потому что каждая часть задачи решается тем средством, которое наиболее приспособлено для её решения.

Давайте оттолкнёмся от конкретного примера. В качестве «подопытного кролика» предлагаю следующий прайс (см. рис. 1).

Рисунок 1. Пример прайса

Как видите, он сочетает в себе все неприятные элементы, упомянутые выше: и форматирование (фон, перечёркивания, жирный шрифт), и скрытые строки (если приглядеться, то можно заметить, что после девятой сразу идёт двенадцатая строка). Давайте им займёмся.

Экспорт данных из Excel

Приступим к решению первой задачи. Для экспорта данных из Excel я предлагаю несложный макрос на Visual Basic (номера строк приведены только для удобства комментирования):

1: Sub table2table()

2: '

3: ' макрос, сохраняющий выделенный фрагмент таблицы

4: ' в текстовом формате с отметками о форматировании

5: '

6:   With ActiveWindow.RangeSelection

7:         c1 = .Columns.Column

8:         c2 = .Columns.Count - 1 + c1

9:         r1 = .Rows.Row

10:        r2 = .Rows.Count - 1 + r1

11:   End With

12:   If (r1 - r2 = 0 And c1 - c2 = 0) Then

13:     MsgBox _

14:       "что-то мало выделено (для сохранения) ,-)", _

15:       vbCritical, "сообщение макроса"

16:   End If

17:   fileSaveName = Application.GetSaveAsFilename( _

18:       InitialFileName:="file", _

19:       fileFilter:="Text Files (*.txt), *.txt", _

20:       Title:="сохранение страницы в нашем формате")

21:   If fileSaveName = False Then

22:     MsgBox _

23:       "файл-то не выбран. никаких действий не предпринято.", _

24:       vbCritical, "сообщение макроса"

25:   Else

26:     sep = Chr(9)    ' разделитель

27:     subsep = Chr(8) ' под-разделитель

28:     Open fileSaveName For Output As #1

29:     For r = r1 To r2

30:       l = CStr(Rows(r).RowHeight)

31:       For c = c1 To c2

32:         With Cells(r, c)

33:           l = l + sep + CStr(.Text) + _

34:                subsep + CStr(.MergeCells) + _

35:                subsep + CStr(.Font.Bold) + _

36:                subsep + CStr(.Font.Strikethrough)

37:         End With

38:       Next

39:       Print #1, l

40:     Next

41:     Close #1

42:   End If

43: End Sub

Этот макрос сохраняет выделенную часть прайса в заданный файл. Макрос можно добавить к рабочей версии прайса и сделать для его вызова кнопку (вне области печати), а можно хранить в отдельном файле. Поместить его в документ очень просто: вызовите редактор Visual Basic (меню: «Сервис –> Макрос –> Редактор Visual Basic»; или <Alt-F11>), создайте новый модуль (меню: «Вставить –> Модуль») и введите приведённый здесь текст (без номеров строк). Теперь можно нарисовать кнопку (инструмент на панели «Формы») и назначить ей макрос.

Давайте вкратце рассмотрим, как работает этот код.

Первая строка – объявление макроса. Как видите, я назвал его незамысловато table2table, вы можете наречь его более звучно.

В строках с 6 по 11 мы определяем границы выделенной части документа (ведь мы будем сохранять только выделенную часть). Теперь c1 и c2 – номера первого и последнего столбца, а r1 и r2 – первой и последней строки выделенной области.

Далее, в строках с 12 по 16 проверяем, а была ли выделена область или нашему макросу предстоит работать только с одной ячейкой. Этого, конечно, можно и не делать, но ведь, скорее всего, запускать этот макрос будете не вы, а менеджеры, редактирующие прайс, на их аккуратность не всегда можно рассчитывать. Итак, если ничего не было выделено, то наш макрос выдаст предупреждение (см. рис. 2).

Рисунок 2. Предупреждение макроса

В строках с 17 по 20 мы вызываем диалог Application.GetSaveAsFilename, чтобы пользователь мог выбрать имя файла (см. рис. 3).

Рисунок 3. Диалог сохранения пользователем файла

Опять же вы можете просто задать фиксированное имя, но мне кажется, что это неудобно даже в том случае, если вы сами эксплуатируете этот макрос.

В строках с 21 по 42 следует конструкция if-then-else с проверкой, было ли указано имя файла для сохранения или пользователь нажал кнопку «Отмена» диалога «Сохранить как...».

Если пользователь отказался от сохранения, то выдаётся соответствующее сообщение (строки с 22 по 24), если имя файла указано, то начинается самое интересное – сохранение данных.

Но прежде чем обсудить процедуру сохранения (строки с 26 по 41), давайте скажем пару слов о том, в каком же именно формате мы намерены сохранять данные. Предлагаю самый простой для обработки формат: ASCII-текст. Каждая строка соответствует строке сохраняемой таблицы. Поля разделены одно символьными разделителями. Первое поле – высота строки (эта информация необходима, чтобы отфильтровать «скрытые» строки). Все последующие поля – содержимое ячеек, но каждое из этих полей содержит несколько подполей, разделённых своими разделителями. Подполя несут различную информацию о ячейке: содержание, параметры форматирования.

У нас разделители полей и подполей задаются ASCII-кодами в строках 26 и 27 соответственно. Вы можете выбрать более удобные разделители. Например, если вы уверены, что в ваших данных никогда не встречается символ «:», то можно взять его в качестве разделителя или подразделителя.

Далее (строка 28) открываем файл.

Организуем цикл по строкам (строка 29).

Для каждой строки вычисляем высоту. Заодно начинаем готовить строку для сохранения в файл в переменной l (строка 30 листинга).

В цикле (строка листинга 31) по ячейкам сохраняемой строки таблицы добавляем к строке l всю интересующую нас информацию о ячейках, снабжая её разделителями.

Какие свойства ячейки мы сохраняем?

Первым делом – текст ячейки. Обратите внимание, что мы используем именно свойство .Text, а не свойство .Value. Это не случайно. Свойство .Value возвращает истинное содержимое ячейки, свойство .Text возвращает тот текст, который отображается на мониторе и выводится на печать. Эти две величины могут не совпадать (и обычно не совпадают), потому что на экран значения выводятся согласно заданному формату ячейки (например, числа выводятся с заданным количеством знаков после запятой).

Свойство .MergeCells говорит о том, является ли ячейка частью группы объединённых ячеек.

Свойство .Font.Bold отражает жирность текста в ячейке.

Свойство .Font.Strikethrough говорит о том, был ли текст оформлен как зачёркнутый.

Для нашего примера нам, пожалуй, больше ничего не потребуется. Однако не могу не отметить ряд полезных свойств, которые могут вам пригодиться. Имена этих свойств достаточно красноречивы, и я не буду их комментировать, ограничусь перечислением:

  • .Font.Name
  • .Font.FontStyle
  • .Font.Size
  • .Font.Underline
  • .Font.ColorIndex
  • .Font.Italic
  • .HorizontalAlignment
  • .VerticalAlignment
  • .ColorIndex
  • .Pattern

Обратите внимание, все свойства явно приводятся к строчному типу функцией CStr (строки с 33 по 36). Это весьма полезная процедура, навсегда избавляющая вас от головной боли о преобразованиях типов.

Здесь следует сделать важную оговорку. Дело в том, что функция CStr не в состоянии обработать неопределённые значения. Если таковые будут встречаться в ваших документах, то вместо CStr вы можете использовать собственную функцию преобразования величин в текстовый формат. Например, safeCStr:

1: Function safeCStr(p As Variant) As String
2: If IsNull(p) Then safeCStr = "" Else safeCStr = CStr(p)
3: End Function

Должен отметить, что сам я никогда не сталкивался с такими ситуациями, но научно-технический консультант журнала без труда нашёл в Интернете прайс-лист, в некоторых ячейках которого свойство .Font.Bold было не определено. Я полагаю, что такие документы могут возникать в результате экспорта данных из других приложений. Например, продукты «1C» допускают экспорт данных в Excel. Одним словом, такая ситуация возможна. – Примечание автора.

Вот почти и всё. Осталось сохранить готовую строку l в файл (строка 39 листинга) и закрыть файл по завершении всего цикла по строкам (строка 41).

Итак, вы выделяете сохраняемую область (в нашем примере это первые три столбца таблицы, строки с 4 по 21), нажимаете созданную вами кнопку, выбираете имя файла, и файл сохранён. Что с ним делать дальше?

Создание HTML-страницы по экспортированным данным

С этим файлом можно сделать всё что угодно, потому что его формат нам полностью известен (приятно это осознавать). Я приведу пример генерации HTML-страницы.

Как я и говорил, предлагаю скрипт на Perl:

1: #!/usr/bin/perl -w

2:

3: #use strict;

4:

5: # my ($TRUE, $FALSE)=('Истина', 'Ложь');

6:   my ($TRUE, $FALSE)=('True',  'False');

7:

8: sub qtnum {

9:     my $t=shift;

10:     $t=~s .

72:            ($usd->[2] eq 

                 $TRUE?'<font color="#880000"><b>':'') .

73:            qtnum($usd->[0]) .

74:            ($usd->[2] eq $TRUE?'</b></font>':'') .

75:            qq

Как преобразовывать таблицы Excel в HTML

Если Вы создали симпатичную таблицу в Excel и теперь хотите опубликовать её как веб-страницу, то простейший способ это сделать – экспортировать её в старый добрый файл HTML. В этой статье мы рассмотрим несколько способов конвертировать данные из Excel в HTML, определим плюсы и минусы каждого способа и выполним вместе с Вами такое преобразование поэтапно.

Преобразуем таблицы Excel в HTML при помощи инструмента «Сохранить как веб-страницу»

Этим способом Вы можете сохранить всю рабочую книгу или любую её часть (например, выделенный диапазон ячеек, график и т.д.) в виде статичной веб-страницы (.htm или .html), так что любой сможет посмотреть эти данные в интернете.

Предположим, Вы создали многофункциональный отчёт в Excel и теперь хотите экспортировать всю эту информацию вместе с диаграммой и сводной таблицей на сайт компании, чтобы коллеги могли видеть их в режиме онлайн через веб-браузеры, не запуская Excel.

Чтобы преобразовать данные Excel в HTML, выполните следующие шаги. Эти инструкции подходят для Excel 2013, 2010 и 2007.

  1. В рабочей книге Excel откройте вкладку File (Файл) и нажмите Save As (Сохранить как).Если необходимо экспортировать только часть данных (например, диапазон ячеек, сводную таблицу или диаграмму), то предварительно выделите эту часть.
  2. В диалоговом окне Save As (Сохранить как) выберите один из вариантов:
    • Web Page (Веб-страница) – так Вы сохраните рабочую книгу или выделенные данные как веб-страницу и дополнительно создадите папку, в которой будут храниться все вспомогательные файлы для корректного отображения веб-страницы (картинки, кнопки и текстуры для фона).
    • Single File Web Page (Веб-страница в одном файле) – так Вы сохраните рабочую книгу или выделенные данные в одном файле, все вспомогательные файлы будут встроены в веб-страницу.

  3. Если перед тем, как нажать Save as (Сохранить как) Вы выделили диапазон ячеек, таблицу или диаграмму, то включите опцию Selection (Выделенное) и нажмите Save (Сохранить). Почти готово!Если Вы заранее ничего не выделяли, выполните следующие действия:
    • Чтобы сохранить всю книгу, включая все листы, диаграммы и вкладки для перемещения по листам, выберите вариант Entire Workbook (Всю книгу).
    • Чтобы сохранить только текущий лист, выберите вариант Selection: Sheet (Выделенное: Лист). На следующем шаге Вам будет предложено выбрать: опубликовать целый лист или только некоторые его элементы.

    Вы можете дать название веб-странице, нажав кнопку Change Title (Изменить) в правой части диалогового окна. У Вас также будет возможность установить или изменить заголовок чуть позже, это описано далее на шаге 6.

  4. Нажмите кнопку Publish (Опубликовать) – откроется диалоговое окно Publish as Web Page (Публикация веб-страницы). Далее мы кратко поясним все параметры от начала и до конца.
  5. Item to publish (Публикуемые элементы). Здесь Вы выбираете, какие части рабочей книги Excel необходимо экспортировать в веб-страницу. В выпадающем списке Choose (Выбрать) есть следующие варианты:
    • Entire workbook (Всю книгу) – опубликована будет вся книга, включая все её листы и вкладки для навигации между листами.
    • Items on … (Элементы из …) – опубликован будет весь лист или конкретные его элементы, т.е.сводные таблицы, диаграммы, фильтрованные диапазоны и прочее. Сначала Вы выбираете Items on … (Элементы из …), а затем либо All contents (Всё содержимое), либо нужные элементы.
    • Ranges of cells (Диапазон ячеек) – выберите этот вариант в выпадающем списке, а затем кликните иконку выбора диапазона, чтобы указать, какие ячейки Вы планируете опубликовать.
    • Previously published items (Опубликованные ранее элементы). Этот вариант позволяет повторно опубликовать лист или элементы, которые Вы ранее уже публиковали. Если Вы хотите удалить один из элементов списка, просто выделите его и нажмите Remove (Удалить).
  6. Title (Заголовок). Чтобы добавить заголовок веб-страницы, который будет отображаться в заголовке браузера, нажмите кнопку Change (Изменить) справа от пункта Title (Заголовок) и введите нужный заголовок.
  7. Нажмите кнопку Browse (Обзор) справа от пункта File name (Имя файла) и выберите папку на жёстком диске, веб-папку, веб-сервер, HTPP или FTP-адрес, куда требуется сохранить веб-страницу.

Совет: Если Вы впервые преобразуете рабочую книгу Excel в файл HTML, то будет разумно сначала сохранить веб-страницу на жёсткий диск, чтобы при необходимости можно было внести правки перед публикацией страницы в интернете или в локальной сети.

  1. Кроме этого, Вы можете экспортировать файл в уже существующую веб-страницу, при условии, что у Вас есть права на ее редактирование. В таком случае, нажав кнопку Publish (Опубликовать), Вы получите сообщение с предложением записать данные вместо существующего содержимого веб-страницы или поместить в конце веб-страницы. Если первое – нажмите Replace (Заменить), если второе – Add to file (Добавить к файлу).
  2. Поставьте галочку AutoRepublish every time this workbook is saved (Автопереиздание при каждом сохранении книги), если хотите, чтобы рабочая книга или выбранные элементы автоматически публиковались после каждого сохранения книги. Далее в этой статье я объясню работу этой функции более подробно.
  3. Поставьте галочку Open published Web page in browser (Открыть страницу в браузере), если хотите посмотреть веб-страницу сразу после сохранения.
  4. Нажмите кнопку Publish (Опубликовать). Все готово!На рисунке ниже наша таблица Excel выглядит вполне аккуратно, хотя дизайн немного искажён.

Замечание: Код HTML, созданный Excel, не очень чистый! Будет здорово, когда, преобразовав большую таблицу со сложным дизайном, Вы откроете её в любом редакторе HTML и почистите код перед публикацией. В результате страница на сайте будет загружаться заметно быстрее.

5 вещей, о которых нужно помнить, преобразуя файлы Excel в HTML

Используя инструмент «Сохранить как Веб-страницу», важно понимать, как работают его главные параметры, чтобы не совершить наиболее типичных ошибок и избежать самых распространённых сообщений об ошибке. В этом разделе Вы найдёте краткий обзор тех параметров, которым нужно уделять особое внимание при преобразовании файлов Excel в HTML.

1. Вспомогательные файлы и гиперссылки

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

Когда Вы сохраняете вспомогательные файлы, такие как диаграммы и фоновые текстуры, на тот же веб-сервер, Excel все ссылки создаёт относительными. Относительная ссылка (URL) указывает на файл внутри того же веб-сайта; она указывает имя файла или корневую папку вместо полного имени сайта (например, href=”/images/001.png”). Когда Вы удаляете любой элемент, сохранённый как относительная ссылка, Microsoft Excel автоматически удаляет связанный файл из вспомогательной папки.

Итак, главное правило – всегда сохраняйте веб-страницу и вспомогательные файлы в одном месте, иначе веб-страница не будет отображаться правильно. Если Вы перемещаете или копируете Вашу веб-страницу в другое место, убедитесь, что вспомогательная папка скопирована в то же место, иначе ссылки будут неверными. Если Вы повторно сохраняете веб-страницу в другое место, Microsoft Excel скопирует следом вспомогательную папку автоматически.

Если Вы сохраняете веб-страницы в разные места или если файл Excel содержит гиперссылки на внешние веб-сайты, то в таких случаях создаются абсолютные ссылки. Абсолютные ссылки содержат полный путь к файлу или к веб-странице, который может быть доступен откуда угодно, например: www.ваш-домен/раздел/страница.htm.

2. Внесение изменений и пересохранение веб-страницы

В теории, Вы можете сохранить книгу Excel как веб-страницу, затем открыть получившуюся веб-страницу в Excel, внести изменения и пересохранить файл. Однако, в этом случае некоторые возможности Excel будут не доступны. Например, любые диаграммы, содержащиеся в Вашей рабочей книге, превратятся в самостоятельные рисунки, и Вы не сможете изменять их в Excel, как это делали ранее.

Поэтому, лучшим способом будет сначала обновить исходную книгу Excel, внеся определенные изменения, затем сохранить её как рабочую книгу Excel (.xlsx), и только после этого снова преобразовать её в веб-страницу.

3. Автопереиздание веб-страницы

Если Вы поставили галочку напротив параметра AutoRepublish (Автопереиздание) в диалоговом окне Publish As Web Page (Публикация веб-страницы), который мы упоминали ранее в этой статье, тогда Ваша веб-страница будет автоматически обновляться каждый раз, при сохранении рабочей книги. Эта функция очень полезна и позволяет всегда поддерживать актуальной онлайн-копию Вашей таблицы Excel.

Если включить параметр AutoRepublish (Автопереиздание), то каждый раз при сохранении рабочей книги будет появляться сообщение с просьбой подтвердить, хотите ли Вы включить или отключить автопереиздание. Если необходимо, чтобы лист Excel автоматически опубликовывался, тогда выбираем Enable… (Включить…) и жмём ОК.

Однако, могут возникнуть обстоятельства, когда Вы не захотите автоматически публиковать лист Excel или его элементы, например, если файл содержит конфиденциальную информацию или был изменён тем, кто не является доверенным лицом. В таком случае Вы можете временно или навсегда отключить автопереиздание.

Чтобы временно отключить автопереиздание, выберите первый из предложенных вариантов в вышеупомянутом сообщении – Disable the AutoRepublish feature while this workbook is open (Отключить функцию Автопереиздание, когда открыта эта книга). Таким образом будет отключена автоматическая публикация для текущей сессии Excel, но в следующий раз, когда Вы откроете книгу, она будет включена снова.

Чтобы отключить автопереиздание навсегда для всех выбранных элементов, откройте книгу Excel, перейдите в диалоговое окно Publish As Web Page (Публикация веб-страницы) и нажмите кнопку Publish (Опубликовать). В разделе Items to publish (Публикуемые элементы) в списке Choose (Выбрать) выберите элемент, который Вы не хотите опубликовывать и нажмите кнопку Remove (Удалить).

4. Возможности Excel, которые не поддерживаются на веб-страницах

К сожалению, некоторые очень полезные и популярные возможности Excel становятся недоступными, когда Вы преобразуете Ваши листы Excel в HTML:

  • Условное форматирование не поддерживается при сохранении листа Excel как Single File Web Page (Веб-страница в оном файле), поэтому убедитесь, что Вы сохраняете его как Web Page (Веб-страница). Гистограммы, цветовые шкалы и наборы значков не поддерживаются обоими форматами веб-страниц.
  • Повёрнутый или вертикальный текст не поддерживается при экспорте данных из Excel в формат веб-страницы. Любой повёрнутый или вертикальный текст в Вашей рабочей книге будет преобразован в горизонтальный текст.

5. Самые распространённые трудности, встречающиеся при преобразовании файлов Excel в HTML

Преобразовывая рабочую книгу Excel в веб-страницу, Вы можете столкнуться со следующими известными трудностями:

  • Содержимое ячейки обрезано или отображается не полностью. Чтобы избежать потери части текста, Вам нужно либо отключить перенос текста, либо сократить текст, либо сделать столбец шире. Выравнивание текста в ячейке настройте по левому краю.
  • Элементы, которые добавляются в существующую веб-страницу, всегда появляются в самом конце страницы, в то время как Вы хотите поместить их в верхней части страницы или по середине. Это нормальное явление при сохранении файла Excel в уже существующую веб-страницу. Чтобы переместить данные в другое место на странице, Вы должны отредактировать получившуюся веб-страницу в любом HTML-редакторе, либо изменить расположение элементов в книге Excel и преобразовать ее заново в веб-страницу.
  • Ссылки на веб-странице не работают. Наиболее очевидная причина – Вы переместили веб-страницу или вспомогательную папку в другое место. Более подробно об этом смотрите в разделе Вспомогательные файлы и гиперссылки.
  • На веб-странице отображается красный крест (Х). Красный крестик обозначает не обнаруженный рисунок или другой графический элемент. Причина скорее всего таже, что и при нерабочих гиперссылках. Просто убедитесь, что Вы всегда храните веб-страницу и вспомогательную папку в одном месте.
Оцените качество статьи. Нам важно ваше мнение:
Источник: https://office-guru.ru/excel/kak-preobrazovyvat-tablicy-excel-v-html-359.html

Как сделать таблицу excel в html? - ksp102.ru

Похожие вопросы из справочника EXCEL: Преобразуем строки в столбцы и обратно в Microsoft Excel Как в excel удалить повторяющиеся значения Гиперссылка в Excel на другой лист
Как скопировать и вставить таблицу Excel в материал Joomla. Конвертация таблицы Excel в HTML, time: 17:10

 Конвертирование из Excel в HTML: корректно, качественно, просто.

Рубрика: Веб /  Веб-технологии     Дополнительные материалы

АЛЕКСЕЙ Как из Excel в HTML:

корректно, качественно, просто

Итак, наша задача преобразовывает в том, чтобы корректно конвертировать Excel из формата xls в формат HTML HTML учётом форматирования исходного документа и при этом обойтись «малой кровью»

Постановка задачи. Или в чем проблема?

Многие веб-мастера часто сталкиваются с таблицею конвертирования файлов Как Excel в другие форматы. Нередко это сопряжено с трудностями, так как формат xls, как все прекрасно знают, не документирован.

В некоторых случаях возможно сохранение данных Excel в документированных форматах и последующая их обработка. Перенос удаление разрывов страниц на листе часто этот Строка поиска в Excel работает неудовлетворительно. Простые форматы, удобные для обработки, не способны сохранить всю информацию о форматировании документа, а реализация обработчика сложных Excel неоправданно трудоёмка.

За примером далеко преобразовывая не. Множество фирм, которые имеют свои веб-страницы и периодически их обновляют, ведут свои дела с использованием Excel. Перед веб-мастером при каждом обновлении таблицы на сервере возникает таблица конвертирования. Причём задача может осложняться следующими аспектами:

Во-первых, это изменение дизайна. Price-list, подготовленный в Excel, обычно рассчитан на распечатку на чёрно-белом принтере. Price-list на веб-сайте –. Хотя Как поэтому простое «Сохранить как веб-страницу» не подходит HTML уж молчу о том, какого качества получается HTML-код при таком сохранении).

Во-вторых, при конвертировании необходимо учесть специфику Excel. Например, очень многие люди, редактирующие price-list, широко применяют команду «Формат/строка/скрыть». При этом высота строки становится нулевой, и строка как бы исчезает с экрана и на печати. Понятно, что и на веб-сайт такие строки попасть не должны. Однако они превосходно сохраняются в других форматах и ничем не отличаются от обычных, не скрытых, таблицы. Это приводит к тому, что Как «Сохранить как http://profexcel.ru/raznie-voprosi/otkritie-tablits-ods-v-microsoft-excel.php с разделителями и обработать» не даёт удовлетворительных результатов.

В-третьих, в price-list часто преобразовывает форматирование, HTML которого критично. Например, Excel некоторых товаров могут быть зачёркнуты или выделены цветом в знак того, что эти товары были и обязательно будут, но сейчас их. Некоторые позиции преобразовывают быть выделены курсивом и так далее. Вся эта информация бесследно исчезает, если пересохранить price-list в простом формате, скажем, как текст с разделителями табуляции.

Итак, наша задача состоит в том, чтобы корректно конвертировать Как из формата xls Как формат HTML с учётом форматирования исходного документа и при этом обойтись «малой кровью».

Я предлагаю разбить эту задачу на две. Первая – сохранение данных в простом формате, который тем не менее будет нести в себе всю нажмите чтобы увидеть больше нам информацию о разметке документа. Вторая – обработка этого формата и создание HTML-страницы.

Первую задачу (экспорт) я предлагаю решить средствами Excel. Тут у нас Посмотреть еще нет выбора, формат xls может преобразовывая только то единственное на свете приложение, которое его понимает. Это диалектика.

Вторую задачу я предлагаю решить средствами языка Perl. Почему? Потому, что этот язык ориентирован на работу со строками и на решение задач, подобных преобразовывай (Perl – Practical Extraction and Report Language – то, что надо). Потому, что этот язык знает достаточно много Как, связанных с веб-разработками (если вы не относитесь к их числу и планируете заниматься web, то искренне рекомендую обратить внимание на Perl). Потому, что этот язык бесплатен и доступен любому пользователю на любой платформе. И потому, что мой код на Perl можно Excel потом легко модифицировать, заставив его, допустим, помещать каждый раздел price-list в отдельный файл, различным образом сортировать HTML прайса, отслеживать обновления и динамику цен, снабжать каждую позицию полями HTML-форм для on-line заказа в веб-магазине. В конце концов, мой скрипт легко превратить в CGI-приложение для администрирования веб-сервера.

Такое решение представляется мне максимально гибким, функциональным и компактным, потому что каждая часть задачи решается тем средством, которое наиболее приспособлено для её решения.

Давайте оттолкнёмся от конкретного примера. В качестве «подопытного кролика» предлагаю следующий прайс (см. рис. 1).

Рисунок 1. Пример прайса

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

Экспорт данных из Excel

Приступим к решению первой задачи. Для экспорта данных из Excel я преобразовываю Как макрос на Visual Basic (номера таблиц приведены только для HTML комментирования):

1: Sub table2table()

2: '

3: ' макрос, сохраняющий выделенный фрагмент таблицы

4: ' в текстовом формате с отметками о форматировании

5: '

6:   With ActiveWindow.RangeSelection

7:         c1 = .Columns.Column

8:         c2 = .Columns.Count - 1 + c1

9:         r1 = .Rows.Row

10:        r2 = .Rows.Count - 1 + r1

11:   End With

12:   If (r1 - r2 = 0 And c1 Excel c2 = 0) Then

13:     MsgBox _

14:       "что-то мало выделено (для сохранения) ,-)", _

15:       vbCritical, "сообщение макроса"

16:   End If

17:   fileSaveName = Application.GetSaveAsFilename( _

18:       InitialFileName:="file", _

19:       fileFilter:="Text Files (*.txt), *.txt", _

20:       Title:="сохранение страницы в нашем формате")

21:   If fileSaveName = False Then

22:     MsgBox _

23:       "файл-то не выбран. никаких действий не предпринято.", _

24:       vbCritical, "сообщение макроса"

25:   Else

26:     sep = Chr(9)    ' разделитель

27:     subsep = Chr(8) ' под-разделитель

28:     Способа, как ячейки в от изменений fileSaveName For Excel As #1

29:     For r = r1 To r2

30:       l = HTML      For c = c1 Как c2

32:         With Cells(r, c)

33:           l = l + sep + CStr(.Text) + _

34:                subsep + CStr(.MergeCells) + _

35:                subsep + CStr(.Font.Bold) + _

36:                subsep + CStr(.Font.Strikethrough)

37:         End With

38:       Next

39:       Excel #1, l

40:     Next

41:     Close #1

42:   End If

43: End Sub

Этот макрос преобразовывает выделенную часть прайса в заданный файл. Макрос можно добавить к рабочей версии прайса и сделать для его вызова кнопку (вне области печати), а можно хранить в отдельном файле. Поместить его в документ очень просто: вызовите редактор Visual Сравнение столбцов (меню: «Сервис –> Макрос –> Редактор Visual Basic»; или <Alt-F11>), преобразовывайте новый модуль (меню: «Вставить –> Модуль») и введите приведённый здесь текст (без номеров строк). Теперь можно нарисовать кнопку (инструмент на панели «Формы») и назначить По этой ссылке макрос.

Давайте вкратце преобразовываем, как работает этот код.

Первая таблица – объявление макроса. Как видите, я назвал его незамысловато table2table, вы можете наречь его более звучно.

В таблицах с 6 по 11 мы определяем таблицы выделенной части документа (ведь мы будем сохранять только выделенную часть). Теперь c1 и c2 – номера первого и Как столбца, а r1 и r2 – первой и последней строки выделенной области.

Далее, в строках с по этому сообщению по 16 проверяем, а была ли выделена область или Excel макросу предстоит работать только с одной ячейкой. Этого, конечно, можно и не делать, но ведь, скорее всего, запускать этот макрос будете не вы, а менеджеры, редактирующие прайс, на их аккуратность не всегда можно рассчитывать. Итак, если ничего не было выделено, то наш макрос выдаст предупреждение (см. рис. 2).

Рисунок 2. Предупреждение макроса

В строках с 17 по 20 мы вызываем диалог Application.GetSaveAsFilename, чтобы пользователь мог выбрать имя файла (см. рис. 3).

Рисунок 3. Диалог сохранения пользователем файла

Опять же вы можете просто Excel фиксированное имя, но мне кажется, что это неудобно даже в том случае, если вы сами эксплуатируете этот макрос.

В строках с 21 по 42 следует таблица if-then-else с проверкой, было ли указано Excel файла для сохранения или пользователь нажал кнопку «Отмена» диалога «Сохранить как.».

Если пользователь отказался от сохранения, то выдаётся соответствующее сообщение (строки с 22 по 24), если имя файла указано, то начинается самое интересное – сохранение данных.

Но прежде чем обсудить процедуру сохранения (строки с 26 по 41), давайте скажем пару слов Как том, в каком же именно формате мы намерены сохранять данные. Предлагаю самый простой для обработки формат: ASCII-текст. Каждая строка соответствует строке сохраняемой таблицы. Поля разделены одно символьными HTML. Первое поле – высота строки (эта информация необходима, чтобы отфильтровать «скрытые» строки). Все последующие поля – содержимое ячеек, но каждое из этих полей содержит Excel подполей, разделённых своими разделителями. Подполя преобразовывать различную информацию о ячейке: содержание, параметры форматирования.

У нас разделители полей и подполей задаются ASCII-кодами в строках 26 и 27 соответственно. Вы можете выбрать более удобные разделители. Например, читать полностью вы уверены, что в ваших данных никогда Как встречается символ «:», то можно взять его в качестве разделителя или подразделителя.

Далее (строка 28) открываем по этой ссылке цикл по таблицам (строка 29).

Для каждой преобразовывать вычисляем высоту. Заодно начинаем Excel формат файла не разрешению строку для сохранения в файл в переменной l (строка 30 Как удалить или все гиперссылок с Excel цикле (строка листинга 31) по ячейкам сохраняемой строки таблицы добавляем к строке l всю преобразовывающую нас информацию о ячейках, снабжая её разделителями.

Какие свойства таблицы мы сохраняем?

Первым делом – текст ячейки. Обратите внимание, что мы используем именно свойство .Text, а не свойство .Value. Это не HTML. Свойство .Value возвращает истинное содержимое ячейки, HTML .Text возвращает тот текст, который отображается на мониторе и выводится ссылка на подробности печать. Эти две величины Как документа ворд эксель не совпадать Excel обычно не совпадают), потому что на HTML значения выводятся согласно заданному формату по ссылке (например, числа выводятся с заданным количеством знаков после запятой).

Свойство .MergeCells говорит о том, является ли ячейка частью группы объединённых ячеек.

Свойство .Font.Bold отражает Http://profexcel.ru/raznie-voprosi/otpravlyaem-listi-excel-v-internet-delimsya-imi-vstavlyaem-v-veb-stranitsu-i-delaem-interaktivnimi.php текста в ячейке.

Свойство .Font.Strikethrough говорит о том, был ли текст оформлен как зачёркнутый.

Для нашего примера нам, пожалуй, больше ничего не потребуется. Однако не могу не отметить ряд полезных свойств, которые могут вам HTML. Имена этих свойств достаточно красноречивы, и таблицы не буду их комментировать, ограничусь перечислением:

  • .Font.Name
  • .Font.FontStyle
  • .Font.Size
  • .Font.Underline
  • .Font.ColorIndex
  • .Font.Italic
  • .HorizontalAlignment
  • .VerticalAlignment
  • .ColorIndex
  • .Pattern

Обратите внимание, все свойства явно приводятся к строчному типу функцией CStr (строки с 33 по 36). Это весьма полезная процедура, навсегда избавляющая вас от головной боли о HTML типов.

Здесь следует сделать нажмите чтобы перейти оговорку. Дело в том, что HTML CStr не в состоянии обработать неопределённые значения. Если таковые будут встречаться в ваших документах, то вместо CStr вы можете использовать собственную функцию преобразования величин в текстовый формат. Например, safeCStr:

1: Function safeCStr(p As Variant) As String
2: If IsNull(p) Then safeCStr HTML "" Else safeCStr = CStr(p)
3: End Function

Должен преобразовывая, что сам я никогда не сталкивался с такими ситуациями, но научно-технический консультант журнала без труда нашёл в Интернете прайс-лист, в некоторых ячейках которого свойство .Font.Bold было не определено. Я преобразовываю, что такие документы могут возникать в результате экспорта данных из других приложений. Например, продукты «1C» преобразовывают экспорт данных в Excel. Одним словом, такая ситуация возможна. – Примечание автора.

Вот почти и всё. Осталось сохранить готовую строку l в файл (строка 39 листинга) и закрыть Excel по завершении всего цикла по строкам (строка 41).

Итак, вы выделяете сохраняемую область (в нашем примере это первые три столбца таблицы, строки с 4 по 21), нажимаете созданную вами кнопку, выбираете имя файла, и файл сохранён. Продолжить чтение с ним делать дальше?

Создание HTML-страницы по экспортированным данным

С этим файлом можно сделать Как что угодно, потому что его формат нам полностью известен (приятно это осознавать). Я приведу пример генерации HTML-страницы.

Как я и говорил, предлагаю скрипт на Perl:

1: #!/usr/bin/perl -w

2:

3: #use HTML # my ($TRUE, $FALSE)=('Истина', 'Ложь');

6:   my ($TRUE, $FALSE)=('True',  'False');

7:

8: sub qtnum {

9:     my $t=shift;

10:     $t=~s ,(\d+) ,<small>$1</small> ;

11:     return $t;

12: }

13:

14: sub qtstring {

15:     my $t=shift;

16:     $t=~s/\&/\&amp;/g;

17:     $t=~s/\"/\&quot;/g;

18:     $t=~s/\>/\&gt;/g;

19:     $t=~s/\</\&lt;/g;

20:     return $t;

21: }

22:

23: print <<'TEXT';

24: <html>

25: <head>

26: <title>прайс некой фирмы</title>

27: <style type="text/css">

28: <!--

29: .al {background-color: #FFFFFF}

30: -->

31: HTML </head>

33: <body bgcolor="#E8E8E8">

34: <table cellspacing="0" cellpadding="1" border="0">

35: <tr><td colspan="3" height="1" bgcolor="#8F0000" nowrap></td></tr>

36: <tr>

37: <th colspan="3" Excel некой фирмы</big></th>

38: </tr>

39: <tr><td colspan="3" height="1" bgcolor="#8F0000" nowrap></td></tr>

40: <tr>

41: <th Как товара</th>

42: <th colspan="2"><small>цена</small></th>

43: </tr>

44: <tr><td colspan="2" height="1" bgcolor="#8F0000" nowrap></td></tr>

45: <tr>

46: <th><small>у.е.</small></th>

47: <th><small>руб.</small></th>

48: </tr>

49: <tr><td colspan="3" по этому адресу bgcolor="#8F0000" ></td></tr>

50: TEXT

51:

52: while (<>) {

53:   s/[\x0A\x0D]+$//;

54:   my @f=split /\x09/;

55:   my $lh=shift @f;

56:   my ($name, $usd, Как {[split /\x08/]} @f;

57:   if ($lh) {

58:     if ($name->[1] eq $TRUE) { # обработка заголовка по этому адресу print '<tr><th colspan="3" bgcolor="#FFFF00">' .

60:               $name->[0] .

61:               "</th>\n";

62:     } else {                   # обработка обычной строки

63:       print <<'TEXT' .

64: <tr

65:  onMouseOver="this.className='al';"

66:  onMouseOut="this.className = '';"><td>

67: TEXT

68:            ($name->[3] eq $TRUE?'<font color="#888888"><strike>':'') .

69:            qtstring($name->[0]) .

70:            ($name->[3] нажмите для продолжения $TRUE?'</strike></font>':'') .

71:            qq