html - 将带有 colspan 的 HTML 表格复制/粘贴到 Excel?

标签 html css excel google-chrome copy-paste

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

是否可以将具有 colspan 的表格单元格复制到反射(reflect)结构的 Excel?

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

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

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

HTML5 还可以,也可以破解

代码笔:http://codepen.io/gradualstudent/pen/MYwNpY

在浏览器中呈现的 HTML 表格: enter image description here

复制/粘贴到 Excel 后的表格: enter image description here

最佳答案

剪贴板处理在不同的浏览器中有所不同。 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

关于html - 将带有 colspan 的 HTML 表格复制/粘贴到 Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27195643/

相关文章:

javascript - Bootstrap 轮播 : disable indicators

excel - 无法使用 Spring Boot 和 Apache POI 正确生成 Excel 文件

r - 使用 xlsx 包将数据从 R 插入到 Excel 时出现问题

javascript - SVG渐变方向

html - 位置 :absolute incompatibility in Chrome and Firefox

jquery - 我的 wordpress 网站加载时间很长,如何减少它?

javascript - 如何更改 Chrome 中已访问链接的颜色?

excel - 仅当范围内具有值时才选择该范围内的随机单元格 - Excel

java - Play 2 框架 : scala iterate through fields of java objects in view

html - 使用 nth of type 或 nth-child 来定位元素?