Excel 能否将单元格解释为 HTML?
-
12-09-2019 - |
题
我正在使用 Aspose.Cells 以编程方式构建 Excel 文档。这很好用。其中一个单元格是原始 HTML 块。我想知道是否可以告诉 Excel(以任何方式,包括 GUI - 您不需要了解 Aspose API)将单元格解析并显示为 HTML。目前,它仅以文本格式、标签等形式显示为原始 HTML。
我知道 Excel 能够将 HTML 粘贴到其中,但看起来它只是自行解析它,然后 Excel 为您解析它,并且它不存储 HTML,因此它实际上并没有解析它并显示它作为 HTML。另外,我无论如何也不知道如何复制此粘贴功能。
谢谢。
解决方案
不幸的是,答案是否定的。
Excel有两个HTML选项:
- 打开一个HTML文件,该文件将种呈现HTML,那种,但不会包含任何实际HTML在细胞
- 存储HTML在细胞,但正如格式文本。
你可以,也许有可能,提出一个宏观,让你进入HTML入一个细胞,然后节省HTML作为一个文件,打开它的时候在另一个Excel实例,然后抓住那HTML格式,并将其中的原始文件;这样你就有两个列,一个与HTML,以及一个与输出。它会是 非常 难看的虽然。不这样做:0)
其他提示
在Excel粘贴HTML数据将导致在Excel被正确显示的HTML格式。在一个问题与此是回车和制表符将被粘贴到下一个单元格。
Dim objData As New DataObject
objData.SetText(sHTML)
Clipboard.SetDataObject(objData)
objRange.PasteSpecial()
将填补使细胞与适当格式化文本
这段代码在一个单元格上对我有用(受到@Rick的答案的启发,但几乎没有变化,因为 Clipboard.SetDataObject(objData)
导致错误并且还 objRange.PasteSpecial()
没用):
Private Sub Worksheet_Change2(ByVal Target As Range, ByVal sht As Worksheet)
Dim objData As DataObject 'Set a reference to MS Forms 2.0'
Dim sHTML As String
Dim sSelAdd As String
Application.EnableEvents = False
objData = New DataObject
sHTML = Target.Text
objData.SetText sHTML
objData.PutInClipboard
sht.PasteSpecial Format:="Unicode Text"
Application.EnableEvents = True
End Sub
Sub test()
Dim rng As Range
Set rng = ActiveSheet.Range("F15") 'cell to change'
Worksheet_Change2 rng, ActiveSheet
End Sub
看到这个 邮政 了解更多详情
我想稍微调整一下它应该不会太困难,它适用于整个工作表,而不仅仅是一个特定的单元格,您可能应该添加一些 if 条件来包装此代码以防止错误,请参阅 这个帖子 了解更多信息
我发现一个有趣的YouTube视频演示了如何使用Web浏览器控件创建一个简单的HTML解释(VBA)在Microsoft Excel中。输入您的HTML和CSS代码到一个文本框,表格将HTML转换成网页预览。