我正在使用 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转换成网页预览。

HTML解释在Microsoft Excel二千零七分之二千零十 - 直接写入到Web浏览器

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top