Excel. Трюки и эффекты | страница 116
Преобразование таблицы Excel в HTML-формат
В процессе работы иногда возникает необходимость в быстром преобразовании табличных данных Excel в HTML-код (например, для оперативного размещения на сайте самой свежей информации). Рассмотрим на конкретном примере, каким образом можно решить эту задачу.
Предположим, что нам необходимо преобразовать в HTML-код следующую таблицу (рис. 3.17).
Рис. 3.17. Таблица Excel
В данном случае следует воспользоваться макросом, код которого приведен в листинге 3.58.
Sub ExportAsHtml()
Dim strStyle As String ' Параметры стиля отображения
ячейки
Dim strAlign As String ' Параметры выравнивания ячейки
Dim strOut As String ' Выходная строка с HTML-кодом
Dim cell As Object ' Обрабатываемая ячейка
Dim strCellText As String ' Текст обрабатываемой ячейки
Dim lngRow As Long ' Номер строки обрабатываемой
ячейки
Dim lngLastRow As Long ' Номер строки предыдущей ячейки
Dim strTemp As String
Dim objWordApp As Object
Dim i As Long
lngLastRow = Selection.Row
' Просмотр всех выделенных ячеек
For Each cell In Selection
' Значение строки для рассматриваемой ячейки
lngRow = cell.Row
' Если перешли на другую строку, то вставляем
If lngRow <> lngLastRow Then
strOut = strOut & vbTab & «
«
' Переход на следующую строку
lngLastRow = lngRow
End If
' Задание шрифта ячейки
If Not IsNull(cell.Font.Size) Then
strStyle = « style=» & "font-size: " & Int(100 * _
cell.Font.Size / 19) & «%;»
End If
' Для полужирного шрифта вставляем
If cell.Font.Bold Then
strCellText = «» & strCellText & «»
End If
' Задание выравнивания
If cell.HorizontalAlignment = xlRight Then
' По правому краю
strAlign = « align=» & «right»
ElseIf cell.HorizontalAlignment = xlCenter Then
' По центру
strAlign = « align=» & «center»
Else
' По левому краю (по умолчанию)
strAlign = ""
End If
' Чтение текста в ячейке
strCellText = cell.Text
' Если нужно, то вертикальный вывод текста (в строку strTemp _
с последующим перенесением обратно в strCellText)
If cell.Orientation <> xlHorizontal Then
strTemp = ""
' Печать после каждого символа специального _
разделителя –
For i = 1 To Len(strCellText)
strTemp = strTemp & Mid$(strCellText, i, 1) & «
»
Next i
strCellText = strTemp
strStyle = ""
End If
strOut = strOut & vbTab & vbTab & «
strAlign _
& «>» & strCellText & «
Next
' Вставка
strOut = vbTab & "