如何从复制粘贴事件剪贴板数据中检测大于1的行跨度?

时间:2019-06-11 14:58:14

标签: javascript html excel events frontend

我正在尝试在我的Web应用程序中构建一个功能,该功能允许用户从另一个网站复制粘贴表格,然后它将粘贴的数据填充到我的Web应用程序中的表格中。我希望它以与Excel相同的方式工作。但是,如果单元格的行距大于1,我不确定如何处理这种情况。

我目前正在通过换行符和制表符分割粘贴的数据。

    const clipboardData = e.clipboardData || e.originalEvent.clipboardData || window.clipboardData;
    const pastedData = clipboardData.getData("text");
    const pastedTable = [];
    pastedData.split("\n").forEach((rowStr) => {
      const rowArr = rowStr.split("\t");
      pastedTable.push(rowArr);
    });

当网站中的所有单元格的rowpan = 1时,这可以正常工作,将每个单元格填充到2D数组中(行x列)。但是,如果有单元格的rowpan> 1,则不太正确。

Example

enter image description here

TLDR ,我想知道是否存在一些分隔符,使我能够检测到rowpan> 1的单元格。将表复制到Excel中时,将正确填充Excel单元格。带有“上半部分”和“下半部分”文本的单元格也已适当合并。如果Excel能够检测到rowpan> 1的单元格,那么我认为必须有一种方法可以从粘贴事件的剪贴板数据中检测到该单元格?

任何建议都将不胜感激。谢谢。

0 个答案:

没有答案