使用colspan将HTML表复制/粘贴到Excel?

时间:2014-11-28 20:43:24

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

编辑在OSX上,复制/粘贴可以从Firefox完美运行,但不适用于Chrome或Safari

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

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

问题是Excel似乎忽略了复制/粘贴中的colspan。因此,在下面的示例中,列标题为" Size"出现在左边太远,在#34;黄色"的列上。当它出现在"小"

的列上时

我并不特别在意Excel单元格是否合并","以选择为中心"或者只是单独的细胞。关键是让位置在语义上正确。

HTML5还可以和任何黑客一样

CodePen http://codepen.io/gradualstudent/pen/MYwNpY

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

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

1 个答案:

答案 0 :(得分: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