使用JavaScript处理来自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

我正在寻找处理来自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
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的解决方案了吗?