我想实现一个功能类似于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 的普通文本和表数据的粘贴事件。
我想从技术上讲我可以编写一个解决方案,其中“如果纯文本的每一行都具有相同的单词名称,则将其视为表格”,但是我可以做更强大的事情吗?
答案:
从表格粘贴的内容将包含 unicode 0x09(制表符)字符。
您可以检测这些是否存在以确定表数据。
现在无可否认,有人可以输入单词:
foo[tab]bar[CR][LF]
foo[tab]bar[CR][LF]
就粘贴事件而言,它看起来与表格数据没有什么区别。