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

时间:2009-12-03 18:52:32

标签: html excel aspose aspose-cells

我正在使用Aspose.Cells以编程方式构建Excel文档。这非常有效。但是,其中一个单元格是一个原始HTML块。我想知道是否可以告诉Excel(以任何方式,包括GUI - 您不需要知道Aspose API)来解析并将单元格显示为HTML。现在,它只是以文本格式,标签和所有内容显示为原始HTML。

我知道Excel能够将HTML粘贴到其中,但看起来它只是自己解析它然后Excel-ifies it for it,并且它不存储HTML,因此它实际上并不解析它并将其显示为HTML。另外,我无法弄清楚如何复制这种粘贴功能。

感谢。

4 个答案:

答案 0 :(得分:13)

不幸的是答案是否定的。

Excel有两个HTML选项:

  • 打开一个HTML文件,该文件将呈现HTML,排序,但不会在单元格中包含任何实际的HTML
  • 将HTML存储在单元格中,但作为无格式文本。

您可能,或许可能会想出一个宏,它允许您将HTML输入到单元格中,然后将该HTML保存为文档,在另一个Excel实例中打开它,然后抓取格式化的HTML并将其放入原始文件;这样你就会有两列,一列是HTML,另一列是输出。但是它会非常非常。不要这样做:0)

答案 1 :(得分:9)

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

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

将使用格式正确的文本填充单元格

答案 2 :(得分:0)

此代码在一个单元格中为我工作(受@ Rick的回答启发,但由于Clipboard.SetDataObject(objData)导致错误并且objRange.PasteSpecial()无法正常工作而进行了少量更改):< / p>

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

请参阅此post了解更多详情

我想它不应该太难以调整它,它可以用于整个工作表而不仅仅是一个特定的单元格,你应该添加一些if条件来包装这些代码以防止错误,有关更多信息,请参阅this post

答案 3 :(得分:0)

我发现了一个有趣的YouTube视频,其中展示了如何使用Web浏览器控件在Microsoft Excel中创建简单的HTML解释器(VBA)。在文本框中输入HTML和CSS代码,表单将HTML转换为Web预览。

HTML Interpreter in Microsoft Excel 2010/2007 - Write directly to Web Browser