从Excel单元格中读取富文本
本文关键字:文本 读取 Excel 单元格 | 更新日期: 2023-09-27 17:49:53
我正在尝试阅读一个excel电子表格,其中一些单元格包含富文本。我想将其转换为以某种方式编码格式的纯文本格式。例如,给定文本:
"这里有一些文本中间有斜体。"
我想把它转换成:
"这里有一些文本[i]中间有斜体[/i] "。
问题是我没有找到从excel单元格中提取富文本的方法。Interop.Office.Excel
允许我获得Range
并检查其Style
属性,但这只告诉我单元格本身是否斜体;它没有给我任何关于单个角色的信息。我发现最好的"解决方案"包括将单元格的内容复制到剪贴板并调用Clipboard.GetData(System.Windows.DataFormats.Rtf)
,并且它太慢而不实用。
是否有一个聪明的方法来访问包含在一个excel单元格,我错过了丰富的文本?
访问字符串中单个字符的格式的方法是使用Range.Characters
对象
Function DecodeText(r As Range) As Variant
Dim strDecoded As String
Dim bItalic As Boolean
Dim i As Long, j As Long
If TypeName(r.Value) = "String" Then
bItalic = False
strDecoded = r
j = 1
For i = 1 To Len(strDecoded)
If Not bItalic And r.Characters(i, 1).Font.Italic Then
strDecoded = Left(strDecoded, j - 1) & "[i]" & Mid(strDecoded, j)
bItalic = True
j = j + 3
ElseIf bItalic And Not r.Characters(i, 1).Font.Italic Then
strDecoded = Left(strDecoded, j - 1) & "[/i]" & Mid(strDecoded, j)
bItalic = False
j = j + 4
End If
j = j + 1
Next
If bItalic Then strDecoded = strDecoded & "[/i]"
DecodeText = strDecoded
Else
DecodeText = r
End If
End Function
i dont have answer for your question
但是我建议你研究一下这个网站http://www.winnovative-software.com/从这个站点您可以获得wnuxls.dll包含excel中所有功能的文件试试