Excel可以将单元格解释为HTML吗?

我正在使用Aspose.Cells以编程方式构buildExcel文档。 这很好。 其中一个单元格是原始HTML块。 我想知道是否可以告诉Excel(以任何方式,包括GUI – 你不需要知道Aspose API)来parsing和显示一个单元格为HTML。 现在,它只是显示为文本格式的原始HTML,标签和全部。

我知道Excel能够将HTML粘贴到它,但它看起来就像它自己parsing它,然后Excel – 它为你,它不存储的HTML,所以它不是实际parsing和显示它作为HTML。 另外,我无法弄清楚如何复制这个粘贴function。

谢谢。

不幸的是,答案是否定的。

Excel有两个HTML选项:

  • 打开一个HTML文件,它将呈现HTMLsorting,但不包含单元格中的任何实际的HTML
  • 将HTML存储在单元格中,但是作为未格式化的文本。

你可能会想出一个macros,它可以让你在一个单元格中inputHTML,然后把这个HTML保存为一个文档,在另一个Excel实例中打开它,然后抓取这个格式化的HTML并把它放在原始文档中。 这样你将有两列,一个是HTML,一个是输出。 这将是非常不雅观的。 不要这样做:0)

在Excel中粘贴html数据将导致html在excel中正确显示。 与此相关的一个问题是,回车和制表符将被粘贴到下一个单元格。

Dim objData As New DataObject objData.SetText(sHTML) Clipboard.SetDataObject(objData) objRange.PasteSpecial() 

将正确格式的文本填入单元格

此代码为我在一个单元格(由@里克的答案,但由于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 

看到这个职位的一些更多的细节

我想这应该不会太困难,它可以适用于整个工作表,而不仅仅是一个特定的单元格,你应该添加一些条件来包装这个代码,以防止错误,看到这个职位的一些更多信息

我发现了一个有趣的YouTubevideo,展示了如何使用networking浏览器控件在Microsoft Excel中创build一个简单的HTML解释器(VBA)。 将您的HTML和CSS代码input到文本框中,然后表单将HTML转换为Web预览。

Microsoft Excel 2010/2007中的HTML解释器 – 直接写入Web浏览器