从Excel单元格读取富文本
我正在尝试阅读其中一些单元格包含丰富文本的Excel电子表格。 我想将其转换为以某种方式对格式进行编码的纯文本格式。 例如,给出的文字:
“这里有一些斜体的文字。”
我想将其转换为:
“这是一些文字[我]在它的中间斜体[/ i]”。
问题是,我还没有find一种方法来从Excel单元格中提取富文本。 Interop.Office.Excel
允许我获得一个Range
并检查它的Style
属性,但是它只能告诉我单元格是否被斜体化; 它不会给我关于任何单个字符的信息。 我find的最好的“解决scheme”包括将单元格的内容复制到剪贴板,并调用Clipboard.GetData(System.Windows.DataFormats.Rtf)
,这太慢了,不实用。
有没有一种聪明的方式来访问我所缺less的Excel单元格中包含的丰富文本?
访问string中单个字符格式的方法是使用Range.Characters
对象
这里演示的是VBA中的一个简单的UDF,它可以用你描述的斜体格式。 您可以扩展它来检测您需要的任何其他格式
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
但我build议你从这个网站http://www.winnovative-software.com/学习网站,你可以得到wnuxls.dll文件,它具有我们想要用excel执行的所有function