如何将 Powerpoint 表格单元格中的格式化文本转换为 HTML

如何将 Powerpoint 表格单元格中的格式化文本转换为 HTML

我想将 Powerpoint 幻灯片中的表格转换为 HTML。我知道如何放入表格标签,但不知道如何将表格单元格内的格式化文本转换为 HTML。例如,我如何将“这是一个单元格,大胆的文本”更改为“这是一个带有<b>粗体</b>文本的单元格”?

我需要能够对粗体、斜体和彩色文本(以及理想情况下的字体大小和字体系列)执行此操作。我实际上并不想更改 Powerpoint 表格单元格本身,而只是组装一个 html 字符串,然后将其保存在json目的。

我知道如何在 Word 中通过设置词范围并使用寻找方法。但我无法在 Powerpoint 中复制此方法。

答案1

每个 TextRange 都有一个 Runs 集合。如果范围内的所有文本格式相同,则集合中只有一个 Run。

如果字体/大小/颜色/粗体在中途发生变化,则 Runs 集合将会增加。

访问集合中的每个 Run 都会为您提供一个 TextRange,您可以检查其字体属性。例如,假设您有这样的文本(全部在一个形状中)

这些文本的格式都一样。这些文本包含一些粗体文本。

Sub thing()

Dim oSh As Shape
Dim oRng As TextRange
Dim x As Long
Dim y As Long

' Assume that the shape with your text is selected
Set oSh = ActiveWindow.Selection.ShapeRange(1)

' You can look at the text in the shape as a whole,
' or paragraph by paragraph or line by line or character by character.
' Let's do it para by para

With oSh.TextFrame.TextRange
    For x = 1 To .Paragraphs.Count

        With .Paragraphs(x)
            Debug.Print "Paragraph: " & x
            For y = 1 To .Runs.Count
                Debug.Print vbTab & "Run: " & y
                Debug.Print .Runs(y).Font.Bold
            Next
        End With
    Next
End With

End Sub

段落:1 运行:1 0 段落:2 运行:1 0 运行:2 -1 运行:3 0

第一段仅有 1 次运行,因为所有文本的格式相同。0 = 不加粗。

第二段有 3 个运行(每个字符的格式与前一个字符不同)。NotBold、BOLD、NotBold

相关内容