【问题标题】:Can Excel interpret a cell as HTML?Excel 可以将单元格解释为 HTML 吗?
【发布时间】:2010-12-22 23:02:50
【问题描述】:

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

我知道 Excel 能够将 HTML 粘贴到其中,但它看起来只是自己解析它,然后 Excel 为您解析它,它不存储 HTML,所以它实际上并没有解析它并将其显示为 HTML。另外,我不知道如何复制这个粘贴功能。

谢谢。

【问题讨论】:

  • 恕我直言 Excel 问题更适合 superuser.com
  • @phil - 这绝对与编程有关。现在我必须赞成取消你的反对票。
  • 我问了一个问题,其中包括如何复制此粘贴功能。问题的基本要点是询问是否有更好的方法。 stackoverflow.com/q/14904641/258482
  • 其实我看到另一个回答说的基本一样。
  • 我知道这篇文章太老了,但请查看stackoverflow.com/questions/9999713/…

标签: html excel aspose aspose-cells


【解决方案1】:

很遗憾,答案是否定的。

Excel 有两个 HTML 选项:

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

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

【讨论】:

【解决方案2】:

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

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

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

【讨论】:

  • 剪贴板对象在哪里。
  • 我会使用objData.PutInClipboard 而不是Clipboard.SetDataObject(objData)sheet.PasteSpecial Format:="Unicode Text" 而不是objRange.PasteSpecial()(为什么?因为它们对我造成了编译错误..)
【解决方案3】:

这段代码在一个单元格上为我工作(受@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

查看post了解更多详情

我想稍微调整一下它应该不会太难,它适用于整个工作表而不仅仅是一个特定的单元格,您可能应该添加一些 if 条件来包装此代码以防止错误,请参阅@ 987654322@了解更多信息

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多