最近,使用了前端导入和导出Excel的需求。使用此库。图书馆文档提供的用例很少,这不是很友好。这篇文章总结了我如何意识到需求。
可以在前端或后端进行导入和导出。本文主要通过此库探索Excel导入和导出函数。
市场上的报告产品可以分为以下两个:
像SheetJs/js-XLSX,Luckysheet,可动式,exprables都是标准的纯前端桌子控件,并且都支持Excel和JSON数据绑定的功能特性。
最后,选择SheepJS/JS-XLSX库,主要是出于以下两个原因:
创建一个新的Excel文档。该文档是,下面有多个。
建议跟上版本编号。第一次安装时,我没有跟上版本号。
与常用的数据表格式(CSF)结合使用。
通用结构单元格地址对象的存储格式是,其中单独表示0索引列和行号。例如,单元格地址由对象表示。
单元格范围的存储格式是第一个单元格和最后一个单元格。范围包含关系。例如,范围由对象表示。
单元对象单元对象是纯JS对象。它的钥匙和价值遵循以下协议:
原始值(请参阅数据类型零件以获取更多信息)格式化文本(如果可以使用)内部行:布尔值,错误,数字,日期,文本,文本,存根单元格式编码为A1样式字符串(如果可以使用)如果)if)公式是数组的公式,则周围数组的范围(如果可以使用)丰富的文本编码(如果可以使用),则丰富的文本将其呈现为HTML(如果可以使用)与单元格关联的数字格式字符串(如果可以使用)(如果可以使用),那是必要的)超级链接对象(长连接,是提示消息)的单元格(如果可以的话,使用的)如果可以使用文本,则构建的 - 内导出工具(例如CSV导出方法)将使用它。如果您想更改单元格的值,请确保在计划之前删除(或设置)导出。工具函数重新基于数字格式()和原始值(如果有)。
真实数组公式存储在数组数中的第一个单元的字段中。该范围内的其他单元将省略该字段。
有关更多详细信息,请检查文档
这是首先转换为,然后转换为转换。因为它被读取异步,我使用了它。最后,您可以在Excel处理后看到这样的JSON。图片如下:
呢[Excel Demo]()![Exceltojson]()
请注意,可能有多个,我们在演示中添加了一个Sheet2,如下图所示:
看到中断点,如下转换后所示:
因此,您需要修改此方法。修改如下:
读取数据按钮的方法如下:
最后,有多个集,如下图所示:
由于我用它来处理读取多个excel,因此我在数组中看到了另一层。在这一点上,简单的前端介绍Excel数据已完全实现。
顺便说一句,如果要在页面上显示,则可以使用它。
导出通常分为两种类型:
前端被引入前端的Excel数据方法,最后一个回报实际上是一个集合。然后可以将Excel文件喷涂到一个导出中。此外,导出的困难是,在编写Excel之后,您必须立即下载它,并直接帮助我们实现此步骤。
假设数据不是以下两个维数阵列:
该方法可以使用如下:
导出页面中的表格将Excel导出,这应该更常见。我们添加一个基本的元素-UI表,如下所示:
导出方法如下:
如果您在页面上使用它,则可以使用组件实例,并将用作条目。
如果您以简单的表为例,似乎一切都很完美。但是,当我使用复杂的表格时,我就踩了一些坑。
由于此方法实际上是将元素转换为元素,因此可以将这些凹坑分类为不正确的元素。
为了更好地理解合并,我首先谈论合并的问题。由于无法合并合并,我实际上使用修改并实现交叉行,然后使用此属性来隐藏原始的原始属性位置元素。如下所示:
图中的“ ID”为2,“名称”是由我设置的。如果我们使用上一个表来导出Excel的方法,您会发现,尽管“ ID”正确地导出到两个列,但“名称”“列没有隐藏。可以得出结论,它不会影响Excel的收购。
因此,我将此类添加到项目中的隐藏标题中,以隐藏合并的标头。
然后在下载报告之前删除合并头。
组件内容的内容不会影响Excel获取的特征可以解决问题1.只要您通过插槽添加添加,您就可以正常获得值。代码显示如下:
首先使用属性固定表,如果根本无法处理,则直接导致导出的结果。下表2是一个示例。“日期”列是固定的,并重复导出的Excel内容。
原因仍在表和表2的比较上。Table2具有更多类型的该节点。
我的处理方法是首先克隆节点,以确保后续操作不会影响页面中的table2。通过克隆通过遍历的新节点,找到此节点和删除,最后返回新节点,并找到正常的节点可以输出Excel文件。特定代码如下:
该库功能非常强大且易于使用,足以应付一般的导出和导出需求。如果您需要美化导出Excel样式,则需要选择Pro版本。开发的难度是阅读的不足和冗长的文档提供。在使用时,请注意维护和对象,而Luckysheet和expravejs则是类似的想法。
上述代码全部放置在GitHub:Iveszheng/XLSX-Study中。
原始:https://juejin.cn/post/70974266666665670430