美文网首页
如何处理 excel 格式复制

如何处理 excel 格式复制

作者: 吴小浙 | 来源:发表于2019-12-10 19:07 被阅读0次

    背景

    后台开发过程中,涉及到表格类的需求上,往往出现复制表格数据到 excel 上的需求,以供使用人员继续表格数据的处理。此方案旨在说明这类需求可能会遇到的难点以及如何处理。

    原理-为什么剪切板中的文本可以按行按列地被显示处理

    excel 或者是 numbers 可以实现数据复制,实际上是对 csv 的兼容带来的?这个还没有得到验证。

    基本表达方式-格式化的规则

    1. 单元格。使用 \t 制表符来表示
    2. 换行。使用 \n 或者是 \r 来表示

    流程

    1. 格式化数据,利用制表符或者换行符
    2. 将格式化之后的数据放到剪切板中

    剪切板功能

    1. 新建一个元素,并将数据放置到该元素中
    2. 监听该元素的 copy 事件,其回调当中有 clipboardData 对象。
    3. 利用该对象的 setData,将数据放置到剪切板当中。
    4. 执行 document.execCommand('copy') 触发 copy 事件

    方案设计的重点

    1. 格式的兼容性。microsoft excel 与 mac numbers 对于格式的处理不一致。
    2. 如何使用剪切板功能。可以使用
      1. copy-to-clipboard,实现了将指定文档放入剪切板的能力。
      2. react-copy-to-clipboard, 基于 copy-to-clipboard 实现了 react 的封装,可以使用声明式的组件完成复制功能的描述。

    兼容性问题

    1. 需要将 format 设置为 ’text/plain‘,这是为了不继承 html 的样式,会更加容易处理样式问题
    2. 需要注意尽量不要使用 空格,因为在 numbers 中,空格被认为是制表符。还没有找到方法处理 numbers 中对空格的处理。

    相关文章

      网友评论

          本文标题:如何处理 excel 格式复制

          本文链接:https://www.haomeiwen.com/subject/zgoggctx.html