我正在尝试阅读excel电子表格,其中一些单元格包含富文本。我想将其转换为纯文本格式,以某种方式编码格式。例如,给出文字:
“这里有一些带有斜体的文字 。”
我想将其转换为:
“这里有一些带有斜体的文字[i]在中间[/ i]”。
问题是我还没有找到从excel单元格中提取富文本的方法。 Interop.Office.Excel
允许我获取Range
并检查其Style
属性,但这只会告诉我单元格本身是否为斜体;它没有给我任何个人角色的信息。我找到的最好的"solution"包括将单元格的内容复制到剪贴板并调用Clipboard.GetData(System.Windows.DataFormats.Rtf)
,这太慢而不实用。
是否有一种智能方法可以访问我遗漏的Excel单元格中包含的富文本?
答案 0 :(得分:1)
i dont have answer for your question
但我建议你去研究这个网站 http://www.winnovative-software.com/ 从这个网站你可以得到wnuxls.dll 具有我们想要用excel执行的所有功能的文件试试
答案 1 :(得分:1)
访问字符串中单个字符格式的方法是使用Range.Characters
对象
此处演示的是VBA中的简单UDF,它使用您描述的Italic格式。您可以扩展它以检测您需要的任何其他格式
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