Доброе время суток
Цитата |
---|
Игорь написал: формирование HTML на основании форматирования внутри ячейки |
Игорь, для одиночной ячейки можно воспользоваться примитивным переводом данных формата ячейки из XML в HTML (Владимир ZVI в своё время подсказал как это делается)
Код |
---|
Public Function CellTextToHtml(ByVal thisCell As Range) As Variant
Dim pReg As Object, sText
If thisCell.Count = 1 Then
Set pReg = CreateObject("VBScript.RegExp")
pReg.Pattern = "<ss:Data[^>]*>(.*?)</ss:Data>"
sText = Replace$(Replace$(thisCell.Value(xlRangeValueXMLSpreadsheet), vbLf, " "), vbCr, " ")
sText = pReg.Execute(sText)(0).SubMatches(0)
CellTextToHtml = Application.Trim(Replace$(sText, "html:", ""))
Else
CellTextToHtml = CVErr(xlErrValue)
End If
End Function |
Примитивность здесь в том, что тэг Font в Html5 уже не поддерживается. Плюс, Replace$(sText, "
html:", "") костыльно. Ну, или писать полноценный трасформер xslt. Получившийся Html вроде отображается в том же виде (ну, за исключением базового определения шрифта, конечно - это требует дополнения).
Скрытый текст |
---|
Код |
---|
<html>
<head>
<title>Test convert</title>
<meta charset="utf-8" />
</head>
<body>
<div>
<Font Face="Arial" x:CharSet="204" x:Family="Swiss" Size="16" Color="#000000">вывод</Font><Font Color="#000000"> "</Font><Font Color="#FF0000">текста"</Font><Font Color="#000000"> x</Font><Sub><Font Color="#000000">2</Font></Sub><Font Color="#000000">, y</Font><Sup><Font Color="#000000">3</Font></Sup><Font Color="#000000"> в '</Font><S><Font Color="#000000">формате'</Font></S><Font Color="#000000"> </Font><I><Font Color="#000000">html</Font></I><Font Color="#000000"> в </Font><B><Font Color="#000000">другую</Font></B><Font Color="#000000"> </Font><U><Font Color="#000000">ячейку</Font></U>
</div>
</body>
</html> |
|