Vue使用js读取Excel数据

article/2025/4/21 9:49:07

JS读取Excel数据

为什么要导入Excel数据,在所有的系统中几乎都会涉及到添加数据功能,添加数据有两种方法,第一种就是手动输入,一次只能输入一条数据。另一种就是通过导入excel文件实现多条数据的添加。
接下来我们就通过一个例子来实现excel数据的导入

1、示例代码

<template><div class="hello"><h1>{{ msg }}</h1><h2>Essential Links</h2><el-row><el-col><el-uploadref="upload"action="/":show-file-list="false":on-change="(file, fileList) => {batchImport(file, fileList,importHeader)}":auto-upload="false"style="margin-left: 30px;width:130px"><el-buttonstyle="width: 130px"type="primary"plainicon="el-icon-upload2"class="handle-del">批量导入</el-button></el-upload></el-col></el-row></div>
</template><script>
import XLSX from "xlsx";
export default {name: 'HelloWorld',data () {return {xlsxJson: {},importHeader:["姓名","年龄"],msg: 'Welcome to Your Vue.js App'}},methods:{batchImport(file, fileList,header) {// let file = file.files[0] // 使用传统的input方法需要加上这一步const types = file.name.split(".")[1];const fileType = ["xlsx", "xlc", "xlm", "xls", "xlt", "xlw", "csv"].some((item) => item === types);if (!fileType) {alert("格式错误!请重新选择");return;}this.file2Xce(file,header).then((tabJson) => {if (tabJson && tabJson.length > 0) {this.xlsxJson = tabJson;}this.setLedgerList();});},setLedgerList() {let data = [];this.xlsxJson[0].sheet.forEach((item) => {data.push(item);});console.log(data)//  这个data就可以传给后端,存入数据了},file2Xce(file,header) {return new Promise(function (resolve, reject) {const reader = new FileReader();reader.onload = function (e) {const data = e.target.result;// XLSX.read返回值为WorkBook对象,包含整个文件的所有表this.wb = XLSX.read(data, {type: "binary",});const result = [];//SheetNames包含了文件中所有的表明this.wb.SheetNames.forEach((sheetName) => {result.push({sheetName: sheetName,sheet: XLSX.utils.sheet_to_json(this.wb.Sheets[sheetName], {//header是设置表属性名,如果设置为数字,则属性名由0,1,2...表示//此处设置的header为importHeader:["姓名","年龄"],最终结果的属性名对应该数组header: header,}),});});console.log("result")console.log(result)//将excel文件第一张表的第一项(excel的第一行为属性名,应该去掉)删除result[0].sheet.shift();resolve(result);};reader.readAsBinaryString(file.raw);// reader.readAsBinaryString(file) // 传统input方法});},}
}
</script>

2、结果分析

2.1素材

excel文件包含两张表
表一
在这里插入图片描述
表二
在这里插入图片描述

2.2代码解析及结果

file2Xce函数获取两张表的数据
结果
解析到excel文件的两张表
在这里插入图片描述
每个表都有两个属性:
sheet:表的数据
sheetName:表的名字
在这里插入图片描述
第一张表内数据,如果file2Xce函数不加header参数,就不会显示属性名(红色箭头标记处)
在这里插入图片描述
setLedgerList函数将表中数据存放在data中,作为后续请求链接的data,传递给后端。
在这里插入图片描述

3、总结

这里的file2Xce函数只是去掉了第一张表的第一行属性值,第二张表没有做处理,所以setLedgerList只是把第一张表的数值传递给了data。
在这个例子中有点瑕疵:本次举例使用的两张表的字段不同,正常情况下两张表的字段应该是相同的,这样就可以通过forEach实现对多表的操作,即将两张表的数据都存到data中。


http://chatgpt.dhexx.cn/article/rREsU586.shtml

相关文章

前端js读取excel工作表格数据

首先 需要两个js文件 jquery.min.js 线上地址 https://cdn.bootcss.com/jquery/3.2.1/jquery.js xlsx.core.min.js 线上地址 https://cdn.bootcss.com/xlsx/0.11.5/xlsx.core.min.js 还是建议弄到本地&#xff0c;因为如果线上地址发生变化就出问题了&#xff0c;搞到本地可以保…

使用xlsx.full.min.js读取excel表格数据

话不多说&#xff0c;直接上图 excel 数据是这样的 结果是这样的 代码如下&#xff0c;需要引入xlsx.full.min.js 下载地址 <!doctype html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport"cont…

js读取excel,xlsx,xls 表格,转成JSON数据

js读取excel,xlsx,xls 表格&#xff0c;转成JSON数据 使用 js-xlsx 插件&#xff1a;https://github.com/SheetJS/js-xlsx转为JSON数据后的效果图 欢迎参考 使用 js-xlsx 插件&#xff1a;https://github.com/SheetJS/js-xlsx HTML内容 创建input type为file 文件上传格式 绑…

JavaScript 技术篇 - js读取Excel文档里的内容实例演示,js如何读取excel指定单元格的内容,js将excel的内容转化为json字符串方法

JavaScript 读取 Excel 文档里的内容实例演示 第一章&#xff1a;准备① 下载 xlsx.full.min.js 支持包第二章&#xff1a;功能实现与使用演示① 实现代码② 使用效果演示③ 获取指定单元格的内容④ 将读取的 Excel 内容转化为 json 字符串 第一章&#xff1a;准备 ① 下载 xl…

JavaScript怎样读取本地Excel文件

在浏览器中&#xff0c;使用JavaScript读取本地文件内容&#xff0c;支持Excel表格(.xls、.xlsx)和文本文件(.txt)两种格式。 首先创建一个Excel表格&#xff0c;其中第一行为字段名。 在浏览器的项目管理器中&#xff0c;创建自定义变量步骤&#xff0c;并依次添加姓名…

如何使用JavaScript实现纯前端读取和导出excel文件

js-xlsx 介绍 由SheetJS出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库&#xff0c;功能强大&#xff0c;支持格式众多&#xff0c;支持xls、xlsx、ods(一种OpenOffice专有表格文件格式)等十几种格式。本文全部都是以xlsx格式为例。 官方github&#x…

使用JavaScript实现纯前端读取excel文件并与后台进行交互

下载SheetJS文件 GitHub下载地址&#xff1a;https://github.com/SheetJS/sheetjs 下载之后打开其中的dist文件目录&#xff0c;能看到其中有xlsx.core.min.js和xlsx.full.min.js两个JS文件&#xff0c;使用其中一个文件就行&#xff0c;一般情况下使用xlsx.core.min.js就可以…

学习写需求分析

笔者本身是软件工程专业出身&#xff0c;但是对如何写需求分析仍然是一知半解&#xff0c;拿到需求&#xff0c;仍然不知道如何下手&#xff0c;才能达到写需求分析的目的。 今天看到一篇文章&#xff0c;让我受益良多&#xff0c;同时参考此文&#xff0c;笔者也尝试写了一个…

Java Web 课程设计需求分析文档

企业办公软件管理需求分析 一、引言 1.1编写目的 软件需求分析是为了使用户和软件开发人员双方对该软件的初始规定有一个共同的理解,使之成为整个软件开发工作的基础.就本项目而言&#xff0c;编写需求分析报告的主要目的是明确系统各部分需要完成的功能&#xff0c;了解系统…

易语言游戏辅助开发原理分析

外挂现在大体上来讲分为三种&#xff0c;分别是模拟按键&#xff0c;WPE封包和内存挂。比如模拟键盘的&#xff0c;鼠标的&#xff0c;这种就叫做按键模拟&#xff0c;也叫脚本精灵&#xff1b;还有修改数据包的&#xff0c;这种就叫做WPE封包外挂&#xff0c;这种外挂相对而言…

Python新手开发的飞机大战

飞机大战import pygame import random import math # 数学模块# 初始化界面 pygame.init() # 设置窗口大小 windows pygame.display.set_mode((800, 600)) # 设置窗口标题 pygame.display.set_caption("小赵同学") # 引入图片 logo icon pygame.image.load(logo.j…

【Python游戏开发】百行Python代码开发出飞机大战小游戏,原来Python可以这么强大

大家好&#xff0c;今天给大家介绍一个小项目&#xff0c;只用一百行代码就可以开发出的游戏。 安装pygame 下载对应python版本的pygame 运行以下命令 创建Pygame窗口及响应用户输入 新建一个文件夹alien_invasion&#xff0c;并在文件夹中新建alien_invasion.py文件&#x…

终极PK | Python相较于Java的优势在哪里?

首先为避免引战&#xff0c;我要强调&#xff0c;“无论是Python还是Java都是目前主流的编程语言&#xff0c;没有好坏之分&#xff0c;有的只是应用场景不同&#xff0c;Python和Java都是世界上最好的语言&#xff01;” 接下来我们从语言本身、应用场景以及流行趋势等多个方…

【编程项目开源】仿微信飞机大战(Python版)

背景 前面已输出多个系列&#xff1a; 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 《N种编程语言做个记事本》 《N种编程语言做个应用市场(appstore)》 《N种编程语…

Java太难,我选python?一个工具,带你开启新世界大门

前不久&#xff0c;4月份十大编程语言排行榜新鲜出炉。据TIOBE公布的数据来看&#xff0c;较上个月&#xff0c;TOP5基本没什么变化。Java稳居第一&#xff0c;随后是C、python、C、C#。 可是&#xff0c;有研究表明&#xff0c;十大难学编程语言中&#xff0c;Java排第3&…

用python编写飞机大战

博主介绍&#xff1a;是一名刚来到CSDN的小萌新 飞机大战 效果显示代码实现领取代码资源 效果显示 代码实现 领取代码资源 效果显示 代码实现 # -*- coding: utf-8 -*- import pygame # 导入pygame库 from pygame.locals import * # 导入pygame库中的一些常量 …

python云计算有哪些岗位,华为python教程下载

本篇文章给大家谈谈华为python语言通用编程规范&#xff0c;以及python云计算有哪些岗位&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 摘要&#xff1a;以 相反的顺序反转和处理字符串可能是编程中的一项常见任务。Python 提供了一组工具和技术&#xff0c…

java和python哪个功能更好,java和python哪个更有前景

大家好&#xff0c;本文将围绕java和python哪个更有发展前景展开说明&#xff0c;java和python哪个功能更好是一个很多人都想弄明白的事情&#xff0c;想搞清楚java和python哪个更有前景需要先了解以下几个事情。 java语言和python语言发展前景哪个好? 【导语】众所周知&#…

用Python写了一个网易云,太强了(附源码)

前言 今天的项目太强了&#xff0c;用 Python 整出一个网易云来&#xff0c;实现音乐自由&#xff01; 环境 Python3.6.8 PyCharm 依赖包 PyQt5&#xff1a;用于图形界面的开发 shelve&#xff1a;用于序列化对象 requests&#xff1a;爬取数据 功能展示 根据关键词&…

java和python哪个更有前景,java和python哪个有前途

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;java和python哪个更有前景&#xff0c;java和python哪个有前途&#xff0c;今天让我们一起来看看吧&#xff01; 前言 如今开发编程行业的发展迅猛&#xff0c;it技术的更新迭代十分快速&#xff0c;社会发展的方方面面…