我正在使用Aspose.Cells以编程方式构建Excel文档。这非常有效。但是,其中一个单元格是一个原始HTML块。我想知道是否可以告诉Excel(以任何方式,包括GUI - 您不需要知道Aspose API)来解析并将单元格显示为HTML。现在,它只是以文本格式,标签和所有内容显示为原始HTML。
我知道Excel能够将HTML粘贴到其中,但看起来它只是自己解析它然后Excel-ifies it for it,并且它不存储HTML,因此它实际上并不解析它并将其显示为HTML。另外,我无法弄清楚如何复制这种粘贴功能。
感谢。
答案 0 :(得分:13)
不幸的是答案是否定的。
Excel有两个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