背景

  做后台项目时避免不了excel文件上传,有的还要求对文件内容做校验,或者把文件内容转成数据上传保存.

操作

  1.引入xlsx插件,最好安装指定版本,否则会报错

npm i xlsx@0.16.0 -save

  2.页面引入 

import XLSX from 'xlsx'

  3.页面触发

<el-upload class="upload-demo" ref="upload" accept=".xls,.xlsx" action="" :on-change="uploadExcel"
:show-file-list="false" :auto-upload="false">
<el-button slot="trigger" size="large">导入excel</el-button>
</el-upload>

  4.使用处理数据

import { ref } from 'vue'
import XLSX from 'xlsx'
const menuData: any = ref([])
const tableData: any = ref([])
const uploadExcel = (file: any, fileList: any) => {
let files = { 0: file.raw }
const fileReader = new FileReader()
fileReader.onload = (e: any) => {
try {
const workbook = XLSX.read(e.target.result, {
type: 'binary'
})
const wsname = workbook.SheetNames[0] // 取第一张表
const ws: any = XLSX.utils.sheet_to_json(workbook.Sheets[wsname])// 生成json表格内容
const data: any = []
ws.map((item: any) => {
let obj: any = {
arr:[]
}
Object.values(item).map((child: any, index: number) => {
obj.arr.push('name' + index)
obj[`name${index}`] = child
})
data.push(obj)
})
tableData.value = data
menuData.value = Object.keys(ws[0])
} catch (err) {
console.log(err)
}
}
fileReader.readAsBinaryString(files[0])
}

excel文件如下:

读取后,处理数据展示如下:

具体代码地址:https://gitee.com/yuexiayunsheng/vue3learn/blob/master/src/views/GetExcelContent.vue

    

vue3中读取本地excel文件内容的更多相关文章

  1. 读取Excel二进制写入DB,并从DB中读取生成Excel文件

    namespace SendMailSMSService { class Program { static void Main(string[] args) { var connString = Sq ...

  2. JS 读取本地Excel文件

    首先我们先引用一个Excel的类库xlsx.full.min.js 中间处理: 'use strict'; var ExcelReader = { isFirstRead: true, fixdata ...

  3. excel to datatable (c#用NPOI将excel文件内容读取到datatable数据表中)

    将excel文件内容读取到datatable数据表中,支持97-2003和2007两种版本的excel 1.第一种是根据excel文件路径读取excel并返回datatable /// <sum ...

  4. PHP读取Excel文件内容

    PHP读取Excel文件内容   项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel.   PHPExcelReader比较 ...

  5. 使用POI读取excel文件内容

    1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...

  6. 【转】flash air中读取本地文件的三种方法

    actionscript中读取本地文件操作有两种代码如下 1.使用File和FileStream两个类,FileStream负责读取数据的所以操作:(同步操作) var stream:FileStre ...

  7. ZK中使用JS读取客户端txt文件内容问题

    最近写一个需求时遇到一个问题,用户需要通过点击一个按钮直接读取他自己电脑上D盘的一个txt文件内容显示到页面,因为项目现在是用ZK写的.我对于ZK也是刚刚了解不就,很多都还不是很熟.起初我是想用io流 ...

  8. [原创]VBA实现汇总excel,将多个Excel文件内容复制到一个Excel文件中

    功能:遍历用户指定的文件夹,把文件夹中所有的excel文件的第一个表格的数据复制到本excel文件中.注意,每个excel文件中有效数据行的判断标准是A列的最后一个有数据的单元格的行号,比如A列到第1 ...

  9. 根据NPOI 读取一个excel 文件的多个Sheet

    大家都知道NPOI组件可以再你本地没有安装office的情况下来 读取,创建excel文件.但是大家一般都是只默认读取一个excel文件的第一个sheet.那么如果要读取一个excel 的所有shee ...

  10. JXL包大解析;Java程序生成excel文件和解析excel文件内容

    最近需求变化,需要把excel导入 我以前没有做过,所以我查了一些资料 和参考别人的代码 以下是多种方式: import java.io.File; import java.io.FileInputS ...

随机推荐

  1. 12月7日内容总结——jQuery查找标签、操作标签、事件和动画效果,Bootstrap页面框架的介绍和使用讲解

    目录 一.jQuery查找标签 基本选择器 层级选择器 基本筛选器 属性选择器 表单筛选器 筛选器方法 二.操作标签 样式操作(class操作) 位置操作 尺寸 文本操作 创建标签 属性操作 文档处理 ...

  2. 10月31日ATM编写逻辑描述

    目录 ATM逻辑描述 三层框架简介 1.第一层(src.py) 2.第二层(interface文件夹下内容) 3.第三层(db_hanlder) 启动函数 用户注册功能 用户登录 common中的小功 ...

  3. FAQ Selenium中提示can not connect to the service chromedriver 的解决方法

    can not connect to the service chromedriver问题的处理 背景 一个同学反馈运行如下代码  from selenium import webdriver     ...

  4. Spacemacs换源无效果

    我改了发现没用,找了好久问题,才发现变量名改了,以前修改源是configuration-layer–elpa-archives这个变量,现在改为configuration-layer-elpa-arc ...

  5. ES字段类型

    1 String ELasticsearch 5.X之后的字段类型不再支持string,由text和keyword取代,不做说明. 2 text和keyword 2.1 简介 ElasticSearc ...

  6. BIO和NIO的基本用法和API讲解

    1 BIO 可以理解为Blocking IO 是同步阻塞的IO,也就是说,当有多个请求过来的时候,请求会呈现为链状结构,遵循先进先出的原则 1.1 单线程版本 1.1.1 服务端 //服务端单线程处理 ...

  7. Lodop打印小票

    使用Lodop打印小票 1.html页面 <head> <meta http-equiv="Content-Type" content="text/ht ...

  8. Gitee + Sourcetree 配置公钥 SSH

    设置前提 安装Git Git下载 安装sourceTree sourceTree下载 gitee账号 gitee官网 Git设置公钥 1.在安装好 sourcetree 后 点击操作选择在终端中打开 ...

  9. 【OpenWrt】N1刷机过程及旁路由设置(通用)

    最近买了个N1盒子,从源系统刷到OpenWrt,总结一下整体过程,大部分都来源于网络教程和自己实践,如有错误欢迎指出! N1盒子刷机 固件准备 最著名的应该是F大的吧,原贴地址:[2023-2-14] ...

  10. JS 格式化时间字符串

    // 格式时间字符串 formatDateTimeStr(date, type) { if (date === '' || !date) { return '' } var dateObject = ...