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

编辑在OSX上,复制/粘贴从Firefox完美工作,但不是从Chrome或Safari

是否有可能将表格单元与colspan复制到Excel来反映结构?

想要一个应用程序来呈现HTML中的表格,以便用户可以很好地复制/粘贴到Excel。 特别是,像colspan=#某些表格单元以正确的alignment方式复制到Excel。

问题是,Excel似乎在复制/粘贴中忽略了colspan。 因此,在下面的例子中,列标题“大小”出现在左上方,在“黄色”列上出现在“小”列上时,

我不特别在意Excel单元是“合并”,“集中在select”还是只是单独的单元格。 他们关键的一点是要让这个位置在语义上是正确的。

HTML5好吧,以及任何黑客

CodePen : 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