VUE3(三十二)vue使用xlsx解析excel文件

简介: 工作中发现了一个比较有意思的前端插件xlsx,可以解析excel文件。之前上传excel文件一般前端只负责文件上传,文件上传成功之后在后端进行解析,后端解析excel的时候使用的是phpexcel,也还是挺方便的

工作中发现了一个比较有意思的前端插件xlsx,可以解析excel文件。

之前上传excel文件一般前端只负责文件上传,文件上传成功之后在后端进行解析,后端解析excel的时候使用的是phpexcel,也还是挺方便的

但是如果前端js也是可以解析excel文件的话,那么在前端交互上就比较舒服,我们可以将文件中的内容解析出来之后显示在页面上,可以让操作人在确认数据没有错误之后在点击确定将数据传递至后端。

事先说明一下:我这里使用的是vite构建的vue3+typescript项目

一:安装xlsx

sql

复制代码

yarn add xlsx
or
npm install xlsx --save

二:使用xlsx

我这里直接将我测试的代码贴出来

1:html部分(我这里使用ant-design-vue组件)

ini

复制代码

<a-upload-dragger
            name="file"
            :multiple="false"
            @change="handleFileSelected"
          >
            <p class="ant-upload-drag-icon">
              <InboxOutlined />
            </p>
            <p class="ant-upload-text">
              单击或拖动文件到此区域以上传
            </p>
          </a-upload-dragger>

2:js部分

引入:

javascript

复制代码

import XLSX from 'xlsx'

调用方法:

ini

复制代码

/**
         * @name: 上传文件调用
         * @author: camellia
         * @email: guanchao_gc@qq.com
         * @date: 2021-08-12
         */
        const handleFileSelected = (e:any) => {
            // 实例化读取文件对象 https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader
            var reader = new FileReader();
            reader.onload = function () {
                var fileData = reader.result;
                var wb = XLSX.read(fileData, { type: 'binary', cellDates: true });
                // {header:1} 取消标题列.
                var rowObj:(any) = XLSX.utils.sheet_to_json(wb.Sheets['Sheet1'], { header: 1});
                data.exportTableData = rowObj;
            };
            // 已二进制的形式读取文件
            reader.readAsBinaryString(e.file.originFileObj);
            // 导入标识改为true
            data.exportSign = true;
        }

我这里使用FileReader来读取文件

FileReader官方文档请参考:

developer.mozilla.org/zh-CN/docs/…

上边只是我简单的一个应用,更多的应用请参考他的官方文档:

github.com/SheetJS/she…

github有的时候打不开,我这里在放两个示例页面:

解析示例:

oss.sheetjs.com/sheetjs/

导出示例:

sheetjs.com/demos/table…

以上两个示例页面都是官方给出的,参照就好。

我在实际应用中发现了一个小问题,也可能是我打包的时候优化的不是很好。使用xlsx的页面在首次加载的时候比较慢。Xlsx文件加载时间相对来讲比较长。我是直接安装在项目中的,也许使用cdn链接引入可能会快点吧,我没有测试。目前还好,在网速快的地方,没有慢到影响用户体验的程度。网速慢,就随缘吧……

以上就是关于xlsx的一个简单的应用。

有好的建议,请在下方输入你的评论。

欢迎访问个人博客:guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

目录
相关文章
|
9天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
52 0
|
23天前
|
XML JavaScript 前端开发
xml文件使用及解析
xml文件使用及解析
|
2月前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
29 0
|
2月前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
21 0
|
23天前
|
JavaScript 前端开发
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
|
5天前
|
移动开发 数据可视化 Linux
Linux 中的文件与目录管理解析
当谈到Linux系统,文件与目录管理是其中最基本和重要的部分之一。Linux提供了一种强大而灵活的方式来组织和管理文件和目录,让用户能够轻松地访问和操作系统中的各种数据。上一节我们说到文件的属性,本文将详细介绍Linux中的文件与目录管理的各个方面。
|
5天前
|
Linux Go 数据安全/隐私保护
Linux 中的文件属性解析
在 Linux 系统中,每个文件和目录有一组属性控制其操作和访问权限。了解这些属性对有效管理文件至关重要。文件属性包括:文件类型(如 `-` 表示普通文件,`d` 表示目录),权限(如 `rwx` 表示所有者权限,`r-x` 表示组和其他用户权限),所有者,组,硬链接数,文件大小和最后修改时间。通过 `chown` 和 `chmod` 命令可更改文件所有者、所属组及权限。此外,还有特殊权限(如 SUID、SGID)和 ACL(访问控制列表)提供更精细的访问控制。
|
5天前
|
JavaScript 前端开发 开发者
深入比较Input、Change和Blur事件:Vue与React中的行为差异解析
深入比较Input、Change和Blur事件:Vue与React中的行为差异解析
|
12天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
18 1
|
15天前
|
XML 数据可视化 程序员
Qt 中的项目文件解析和命名规范
Qt 中的项目文件解析和命名规范

推荐镜像

更多