Html в ячейке excel
Экспорт выделенного диапазона ячеек в HTML код
Макрос предназначен для экспорта выделенного диапазона ячеек книги Excel в код HTML.
Результат (HTML код таблицы) помещается в буфер обмена.
Первая строка выделенного диапазона ячеек считается заголовком таблицы (обрамляется тегами вместо )
Например, мы имеем изначально такую таблицу Excel, где мы выделили диапазон ячеек A1:D9
Запускаем макрос — и в буфере обмена Windows появляется следующий HTML-код:
После вставки этого кода на веб-страницу, видим следующее:
ФИО | Правильный результат склонения | Новая формула — DativeCase | Совпадение |
---|---|---|---|
БАРАШ Лев Юрьевич | БАРАШУ Льву Юрьевичу | Барашу Льву Юрьевичу | ИСТИНА |
Абраамян Оганес Дереникович | Абраамяну Оганесу Дерениковичу | Абраамяну Оганесу Дерениковичу | ИСТИНА |
Абрамян Артур Александрович | Абрамяну Артуру Александровичу | Абрамяну Артуру Александровичу | ИСТИНА |
Абрамян Назар Вачаганович | Абрамяну Назару Вачагановичу | Абрамяну Назару Вачагановичу | ИСТИНА |
Абросимов Антон Владимирович | Абросимову Антону Владимировичу | Абросимову Антону Владимировичу | ИСТИНА |
АГАФОНОВ Иван Николаевич | АГАФОНОВУ Ивану Николаевичу | Агафонову Ивану Николаевичу | ИСТИНА |
Агафонов Константин Викторович | Агафонову Константину Викторовичу | Агафонову Константину Викторовичу | ИСТИНА |
Агеев Антон Сергеевич | Агееву Антону Сергеевичу | Агееву Антону Сергеевичу | ИСТИНА |
Собственно, сам код макроса для экспорта таблицы Excel в HTML:
PS: За основу взят код из блога Максима Тарлюн
- 20376 просмотров
Комментарии
Вопрос, а как вызвать диалоговое окно сохранения как Веб-страница(.html) с отметкой сохранить выделенный лист?
Как-то так можно:
В созданном макросе замены никак не могу добавить несколько замен, как это можно реализовать?
Заранее спасибо за ответ
Sub place()
Dim wfile: wfile = «C:. rs.HTM»
Application.DisplayAlerts = False
SaveTXTfile wfile, Replace(ReadTXTfile(wfile), «?», «a»)
Application.DisplayAlerts = True
End Sub
Не знаю, зачем тут формулы. Для макросов, размер файла не важен, — пользуйтесь макросами для обработки, и ограничений не будет.
Формулы работы с тексом обрабатывают файлы до 32 кб, а эксель катастрофически раздувает HTML файлы при сохранении. Возможно ли как то обойти это органичение?
Работаете с файлом HTML также, как с любым другим текстовым файлом
http://excelvba.ru/code/txt
А как макросом внести изменения в HTML? Если Макрос Excel, то как открыть файл HTML в тексовом виде?
Только если потом макросом вносить правки в файл HTML (каждый раз после сохранения)
Т.к. вмешаться в процесс сохранения файла (save as) не получится
Для оптимизации работы со ссылками на сайте использую фунцию onclick
Пример
Ссылка
При этом иногда ссылки находятся в таблице, которая сохраняется периодически макросом из Excel (save as . html) в самом ексель ячейки с гиперссылками (пример: HYPERLINK(H6,1), в ячейке Н6 прописано — #» onclick=»window.open(‘http://google.com’); window.open(‘http://google.com’);).
Одна из проблем конвертации, кроме всего прочего, это преобразование двойных кавычек » в » получается —
Ссылка
Как «чайнику» можно решить эту проблему не изменяя файл, сохраненный в html (очень часто обновляется).
Заранее благодарен за ответы.
Здравствуйте, Роман
Да, можно и сразу в файл
Замените код
Спасибо за макрос!
Есть вопрос можно ли сохранять выполнение не в буфер обмена а сразу в файл HTML?
очень интересует эта возможность
——- Можно и цвет передать, и гиперссылки корректно обработать.
Но это надо дорабатывать код.
Если готовы оплатить доработку, — сделаем. ——
нужны все атрибуты — границы,цвета ячеек и ссылки..
Как бы мне получить такой макрос?
А если надо с объединениями по столбцам и по строкам, тогда можно сделать так:
sOutput = «»
For j = iFirstCol To iLastCol
If Cells(k, j) <> «» Then
If Cells(k, j).MergeArea.Count > 1 Then
SpanedCell = «» & Cells(k, j) & «»
rSpan0 = » rowspan=» & Chr(34) & 1 & Chr(34)
SpanedCell = Replace(SpanedCell, rSpan0, «»)
cSpan0 = » colspan=» & Chr(34) & 1 & Chr(34)
SpanedCell = Replace(SpanedCell, cSpan0, «»)
ce = ce & SpanedCell
Else
ce = ce & «» & Cells(k, j) & «»
End If
Else
If Cells(k, j).MergeArea.Count = 1 Then ce = ce & » »
End If
Next j
If k = iFirstLine Then ce = Replace(ce, «td», «th»)
r = r & ce & «»
‘MsgBox r
Next k
sOutput = sOutput & r & «»
[K1] = sOutput
Можно и цвет передать, и гиперссылки корректно обработать.
Но это надо дорабатывать код.
Если готовы оплатить доработку, — сделаем.
удалось ли передать цвет ячейки в таблицу? и есть ли возможность содержание гиперссылки этим же макросом отправлять в таблицу?
Подскажите как в таблицу передать цвет заливки ячейки ?
Нет, не поменяется
Макрос выгружает в HTML ТЕКУЩИЕ ЗНАЧЕНИЯ из таблицы
Если надо отобразить обновляемую таблицу Excel на сайте, — есть другие решения (например, библиотеки на PHP для вывода таблиц Excel), а макросы тут вообще ни при чем.
Вопрос такой! Если я изменю значение в Excel, поменяется ли отображение на веб-страничке?
Увы, по Mac ничего подсказать не могу, — не на чем протестировать даже.
Самый простой способ — выводите результат на новый лист Excel
Спасибо за макрос, а подскажите плиз, под Эксель в MacOS какие нужно внести изменения, чтобы в буфер кидало результат?
Отправить комментарий
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
ПОПУЛЯРНЫЕ ПРОГРАММЫ
© 2009-2019 Игорь Вахненко
Html в ячейке excel
ситуация : копирую из HTML таблицы содержимое одной из ячеек. В ячейке текст 2.5
теперь открываю Excel выделяю сразу несколько ячеек , например 4х4, и выствляю там формат «ТЕКСТОВЫЙ».
делаю вставку содержимого буффера обмена в одну из этих ячеек.
вставляется 2.май
т.е. Excel производит автоформат вставляемых данных. Если воспользоваться специальной вставокй и вставить содержимое буфера обмена как UNICODE то вставляется нормально, но это не подходит, когда мне надо вставить не одну ячейку таблицы а всю html-таблицы: распознавания этой таблицы не происходит.
В общем: как отключить автоформат в Excel при вставке в ячейки данных из html-таблицы ?
← →
sad ( 2003-03-07 08:56 ) [1]
для XP офиса делаешь так: применяешь к ячейкам формат текстовый, вставляешь, на иконке в правом нижнем углу от вставленного фрагмента выбираешь «Использовать формат конечных ячеек»
VBA: ActiveSheet.PasteSpecial Format:=»HTML», Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
← →
V >2003-03-07 12:06 ) [2]
Спасибо. 🙂 вот только я совершенно не разбираюсь в VBA. Дело в том что у меня Office 97, и видимо единственным решением проблемы будет написание кода, на этом VBA.
Не мог бы ты подробней рассказать как это сделать, или лучше даже скинуть макрос выполняющий эти действия мне на ящик vidsnap@mail.ru ?
← →
sad ( 2003-03-07 12:18 ) [3]
это собственно текст макроса, то бишь заходишь СервисМакросМакросы
задаешь имя макроса Сщздать и вставляешь строчку приведенную в предыдущем посте.К сожалению,у меня нет возможности проверить это на 97 офисе.
← →
V >2003-03-07 13:43 ) [4]
я создал макрос
Sub HTMLPaste()
ActiveSheet.PasteSpecial Format:=»HTML», Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
End Sub
потом поставил на страницу кнопку из панели «Формы», и присвоил этой кнопке выполнение макроса HTMLPaste
нажимаю на кнопку получаю ошибку 1004 — Ошибка определяемая объектом или приложением.
← →
V >2003-03-07 20:40 ) [5]
← →
V >2003-03-09 12:35 ) [6]
вопрос остаётся открытым.
← →
Shustryi ( 2003-03-09 13:31 ) [7]
Да уж, проблемка конечно, но она решима, я сделать могу, но дело в том что офис у тебя 97 а у меня XP
← →
V >2003-03-09 20:59 ) [8]
To Shustryi: Спасибо хотя бы за желание помочь 🙂 буду ждать чуда 🙂
← →
sad ( 2003-03-11 09:54 ) [9]
>>VID © (07.03.03 13:43)
потом поставил на страницу кнопку из панели «Формы»
по подробней по поводу страницы..
чтобы макрос работал надо. чтобы в буфере обмена уже была твоя HTML страница. плюс формат ячеек ТЕКСТОВЫЙ.. попробуй поиграть с макро рекордером
Экспорт выделенного диапазона ячеек в HTML код
Макрос предназначен для экспорта выделенного диапазона ячеек книги Excel в код HTML.
Результат (HTML код таблицы) помещается в буфер обмена.
Первая строка выделенного диапазона ячеек считается заголовком таблицы (обрамляется тегами вместо )
Например, мы имеем изначально такую таблицу Excel, где мы выделили диапазон ячеек A1:D9
Запускаем макрос — и в буфере обмена Windows появляется следующий HTML-код:
После вставки этого кода на веб-страницу, видим следующее:
ФИО | Правильный результат склонения | Новая формула — DativeCase | Совпадение |
---|---|---|---|
БАРАШ Лев Юрьевич | БАРАШУ Льву Юрьевичу | Барашу Льву Юрьевичу | ИСТИНА |
Абраамян Оганес Дереникович | Абраамяну Оганесу Дерениковичу | Абраамяну Оганесу Дерениковичу | ИСТИНА |
Абрамян Артур Александрович | Абрамяну Артуру Александровичу | Абрамяну Артуру Александровичу | ИСТИНА |
Абрамян Назар Вачаганович | Абрамяну Назару Вачагановичу | Абрамяну Назару Вачагановичу | ИСТИНА |
Абросимов Антон Владимирович | Абросимову Антону Владимировичу | Абросимову Антону Владимировичу | ИСТИНА |
АГАФОНОВ Иван Николаевич | АГАФОНОВУ Ивану Николаевичу | Агафонову Ивану Николаевичу | ИСТИНА |
Агафонов Константин Викторович | Агафонову Константину Викторовичу | Агафонову Константину Викторовичу | ИСТИНА |
Агеев Антон Сергеевич | Агееву Антону Сергеевичу | Агееву Антону Сергеевичу | ИСТИНА |
Собственно, сам код макроса для экспорта таблицы Excel в HTML:
PS: За основу взят код из блога Максима Тарлюн
- 20378 просмотров
Комментарии
Вопрос, а как вызвать диалоговое окно сохранения как Веб-страница(.html) с отметкой сохранить выделенный лист?
Как-то так можно:
В созданном макросе замены никак не могу добавить несколько замен, как это можно реализовать?
Заранее спасибо за ответ
Sub place()
Dim wfile: wfile = «C:. rs.HTM»
Application.DisplayAlerts = False
SaveTXTfile wfile, Replace(ReadTXTfile(wfile), «?», «a»)
Application.DisplayAlerts = True
End Sub
Не знаю, зачем тут формулы. Для макросов, размер файла не важен, — пользуйтесь макросами для обработки, и ограничений не будет.
Формулы работы с тексом обрабатывают файлы до 32 кб, а эксель катастрофически раздувает HTML файлы при сохранении. Возможно ли как то обойти это органичение?
Работаете с файлом HTML также, как с любым другим текстовым файлом
http://excelvba.ru/code/txt
А как макросом внести изменения в HTML? Если Макрос Excel, то как открыть файл HTML в тексовом виде?
Только если потом макросом вносить правки в файл HTML (каждый раз после сохранения)
Т.к. вмешаться в процесс сохранения файла (save as) не получится
Для оптимизации работы со ссылками на сайте использую фунцию onclick
Пример
Ссылка
При этом иногда ссылки находятся в таблице, которая сохраняется периодически макросом из Excel (save as . html) в самом ексель ячейки с гиперссылками (пример: HYPERLINK(H6,1), в ячейке Н6 прописано — #» onclick=»window.open(‘http://google.com’); window.open(‘http://google.com’);).
Одна из проблем конвертации, кроме всего прочего, это преобразование двойных кавычек » в » получается —
Ссылка
Как «чайнику» можно решить эту проблему не изменяя файл, сохраненный в html (очень часто обновляется).
Заранее благодарен за ответы.
Здравствуйте, Роман
Да, можно и сразу в файл
Замените код
Спасибо за макрос!
Есть вопрос можно ли сохранять выполнение не в буфер обмена а сразу в файл HTML?
очень интересует эта возможность
——- Можно и цвет передать, и гиперссылки корректно обработать.
Но это надо дорабатывать код.
Если готовы оплатить доработку, — сделаем. ——
нужны все атрибуты — границы,цвета ячеек и ссылки..
Как бы мне получить такой макрос?
А если надо с объединениями по столбцам и по строкам, тогда можно сделать так:
sOutput = «»
For j = iFirstCol To iLastCol
If Cells(k, j) <> «» Then
If Cells(k, j).MergeArea.Count > 1 Then
SpanedCell = «» & Cells(k, j) & «»
rSpan0 = » rowspan=» & Chr(34) & 1 & Chr(34)
SpanedCell = Replace(SpanedCell, rSpan0, «»)
cSpan0 = » colspan=» & Chr(34) & 1 & Chr(34)
SpanedCell = Replace(SpanedCell, cSpan0, «»)
ce = ce & SpanedCell
Else
ce = ce & «» & Cells(k, j) & «»
End If
Else
If Cells(k, j).MergeArea.Count = 1 Then ce = ce & » »
End If
Next j
If k = iFirstLine Then ce = Replace(ce, «td», «th»)
r = r & ce & «»
‘MsgBox r
Next k
sOutput = sOutput & r & «»
[K1] = sOutput
Можно и цвет передать, и гиперссылки корректно обработать.
Но это надо дорабатывать код.
Если готовы оплатить доработку, — сделаем.
удалось ли передать цвет ячейки в таблицу? и есть ли возможность содержание гиперссылки этим же макросом отправлять в таблицу?
Подскажите как в таблицу передать цвет заливки ячейки ?
Нет, не поменяется
Макрос выгружает в HTML ТЕКУЩИЕ ЗНАЧЕНИЯ из таблицы
Если надо отобразить обновляемую таблицу Excel на сайте, — есть другие решения (например, библиотеки на PHP для вывода таблиц Excel), а макросы тут вообще ни при чем.
Вопрос такой! Если я изменю значение в Excel, поменяется ли отображение на веб-страничке?
Увы, по Mac ничего подсказать не могу, — не на чем протестировать даже.
Самый простой способ — выводите результат на новый лист Excel
Спасибо за макрос, а подскажите плиз, под Эксель в MacOS какие нужно внести изменения, чтобы в буфер кидало результат?
Отправить комментарий
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
ПОПУЛЯРНЫЕ ПРОГРАММЫ
© 2009-2019 Игорь Вахненко
Конвертирование из Excel в HTML: корректно, качественно, просто.
Архив номеров / 2003 / Выпуск №12 (13) / Конвертирование из Excel в HTML: корректно, качественно, просто.
|