使用JavaScript处理来自Google工作表、Excel或HTML的剪贴板数据
我正在寻找处理来自Google工作表、Excel和普通HTML表格的数据的功能 我正在使用“粘贴事件”获取剪贴板的内容使用JavaScript处理来自Google工作表、Excel或HTML的剪贴板数据,javascript,html,html-table,Javascript,Html,Html Table,我正在寻找处理来自Google工作表、Excel和普通HTML表格的数据的功能 我正在使用“粘贴事件”获取剪贴板的内容 var clipText=event.clipboardData.getData('text/plain') 虽然我不太确定如何处理数据,以及使用哪些符号来分隔行和列。理想情况下,我希望有一个行数组和列数组 过去六个月的假期 ID姓名七月八月九月十月十一月十二月 215 Abel 5 2 0 0 3 231安妮特05306 173伯纳德200 500 141杰拉尔德01008
var clipText=event.clipboardData.getData('text/plain')代码>
虽然我不太确定如何处理数据,以及使用哪些符号来分隔行和列。理想情况下,我希望有一个行数组和列数组
过去六个月的假期
ID姓名七月八月九月十月十一月十二月
215 Abel 5 2 0 0 3
231安妮特05306
173伯纳德200 500
141杰拉尔德01008
99迈克尔88804
例如,HTML的纯拷贝是这种格式的结果,有些单元格用3个空格分隔,有些单元格用2分隔(Gerald 10->0)
我期望的结果是:
[
[ID, Name, July, August, September, October, November, December],
[215, Abel, 5, 2, 0, 0, 0, 3],
[231, Annette, 5, 3, 0, 0, 0, 3]
...
]
是否有任何特殊字符可用于从剪贴板中断开/分隔表格数据?如果要在一行中分隔两个或多个空格,可以使用正则表达式:
const clipText = event.clipboardData.getData('text/plain')
const splitByLines = clipText.split(/\r\n|\n|\r/g, clipText) // Split lines for Windows (\r\n) or Linux/OSX (\n). See note below...
const splitBySpaces = splitByLines.forEach(line => line.split(/\s{2,}/g)) // Split each line everywhere there are 2 or more spaces in a row
如果您想支持Unicode输入或一些非常模糊的系统,您应该看看ECMA认为的“行尾”字符:您尝试过这个吗?你找到这个@Runnick的解决方案了吗?