编辑:在 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 表格:
复制/粘贴到 Excel 后的表格:
最佳答案
剪贴板处理在不同的浏览器中有所不同。 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/