【问题标题】:Copy/paste HTML table with colspan to Excel?将带有colspan的HTML表格复制/粘贴到Excel?
【发布时间】:2014-11-28 20:43:24
【问题描述】:

编辑在 OSX 上,复制/粘贴在 Firefox 中完美运行,但在 Chrome 或 Safari 中则不行

是否可以将带有 colspan 的表格单元格复制到反映结构的 Excel 中?

希望应用能够以 HTML 格式呈现表格,以便用户可以将其复制/粘贴到 Excel 中。特别是,希望将一些带有colspan=# 的表格单元格以正确的对齐方式复制到 Excel。

问题在于 Excel 似乎在复制/粘贴时忽略了 colspan。因此,在下面的示例中,列标题“Size”出现在“Yellow”列的左侧太远,而它应该出现在“small”列的上方

我并不特别关心 Excel 单元格是“合并”、“居中选择”还是只是简单的单独单元格。他们的关键是让位置在语义上正确。

HTML5 和任何 hack 一样好

CodePenhttp://codepen.io/gradualstudent/pen/MYwNpY

在浏览器中呈现的 HTML 表格:

复制/粘贴到 Excel 后的表格:

【问题讨论】:

  • 是否可以选择,复制粘贴表格的HTML源代码?请尝试以下操作: 从 CodePen 复制表格的 HTML 源代码。然后将其粘贴到选中一个单元格的 Excel 工作表中。
  • 哦,太棒了。这工作得很好。所以我也许可以将 HTML 复制到剪贴板,而不是突出显示 DOM 元素并让 Chrome 获取 HTML 并将其放在剪贴板上。我可能会要求您发布此评论作为答案。

标签: html css excel google-chrome copy-paste


【解决方案1】:

剪贴板处理在不同的浏览器中有所不同。 Excel 能否从剪贴板中获取格式正确的表格取决于不同浏览器将哪些数据放入剪贴板。不幸的是,大多数实际操作系统默认没有更多的剪贴板查看器。所以我们不能简单地看那里有什么区别。

但是 Excel 可以处理 HTML 表格。因此,如果 HTML 表格的 HTML 源代码在剪贴板中,则 Excel 可以正确粘贴。

VBA 示例:

Sub HTMLinClipboardTest()

 sHTML = "<table>" & _
         "<tr><td colspan=""2"" align=""center"">colspan2</td></tr>" & _
         "<tr><td rowspan=""2"" style=""vertical-align:middle;"">rowspan2</td><td>default</td></tr>" & _
         "<tr><td>default</td></tr>" & _
         "<tr><td>default</td><td>default</td></tr>" & _
         "</table>"

 Dim oDataObject As New DataObject 'needs Microsoft Forms 2.0 Object Library
 oDataObject.SetText sHTML
 oDataObject.PutInClipboard
 ActiveSheet.Range("a1").Select
 ActiveSheet.Paste

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2010-11-08
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    相关资源
    最近更新 更多