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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 工作中发现了一个比较有意思的前端插件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

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

目录
相关文章
|
16天前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分到不同的工作表中。本文通过一个示例代码展示了如何生成一个包含总成绩表和三个班级表的Excel文件。代码首先创建了一个包含学生姓名、班级和各科成绩的数据框,然后按班级分组,将每个班级的数据分别写入不同的工作表。最后,生成的Excel文件将包含四个工作表,分别为总成绩表和三个班级的成绩表。
26 6
按条件将Excel文件拆分到不同的工作表
|
15天前
|
Python
批量将不同的工作簿合并到同一个Excel文件
本文介绍如何使用Python的`pandas`库批量合并不同工作簿至同一Excel文件。通过模拟生成三个班级的成绩数据,分别保存为Excel文件,再将这些文件合并成一个包含所有班级成绩的总成绩单。步骤包括安装必要库、生成数据、保存与合并工作簿。
24 6
|
15天前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分为多个工作表。本文通过一个具体示例,展示了如何根据学生班级将成绩数据拆分到不同的工作表中,并生成一个包含总成绩表和各班级成绩表的Excel文件。代码简洁明了,适合初学者学习和应用。
29 6
|
24天前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
26 1
|
1月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
47 4
|
25天前
|
JavaScript 前端开发 API
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
54 0
|
17天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
2月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
137 4
|
4月前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
51 0
|
2月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
74 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档

推荐镜像

更多