如何检测粘贴事件是否来自 Excel?

问题描述 投票:0回答:1

我想实现一个功能类似于Stack Exchange和Github的Markdown编辑器,用户可以在其中粘贴来自Google Sheets、Excel等的表格数据,它会将表格转换为GFM表格。

相关:我已经要求一个可以执行此操作的库在此处的软件推荐

我在这里找到了一些开源代码可以很好地完成此转换。

不幸的是,他们还没有实现“looksLikeTable”功能。

来自 Google Sheets 的粘贴事件将轻松地将类型

"application/x-vnd.google-docs-embedded-grid_range_clip+wrapped"
包含在 PasteEvent.clipboardData.items 中。

但是,来自 Excel(和 Apple Numbers)的粘贴事件仅包含以下项目数组:

[
    "text/plain",
    "text/html",
    "text/rtf",
    "Files"
]

这是一个问题,因为来自 MS Word 的粘贴事件也包含相同的数组,所以我需要某种方法来区分来自 MS Word 的普通文本和表数据的粘贴事件。

我想从技术上讲我可以编写一个解决方案,其中“如果纯文本的每一行都具有相同的单词名称,则将其视为表格”,但是我可以做更强大的事情吗?

javascript excel google-sheets markdown paste
1个回答
0
投票

答案:

从表格粘贴的内容将包含 unicode 0x09(制表符)字符。

您可以检测这些是否存在以确定表数据。

现在无可否认,有人可以输入单词:

foo[tab]bar[CR][LF]
foo[tab]bar[CR][LF]

就粘贴事件而言,它看起来与表格数据没有什么区别。

© www.soinside.com 2019 - 2024. All rights reserved.