当前位置: 首页 > news >正文

vue读取本地excel文件并渲染到列表页面

1.安装插件(版本0.18.5)

npm i xlsx

2.封装插件

<template><div class="container"><slot></slot></div>
</template><script>
import * as XLSX from 'xlsx'
export default {name: 'ReadExcel',props: {filePath: {type: String,default: ''}},mounted() {this.readExcel()},methods: {readExcel() {// 假设你的xlsx文件位于public目录下,并命名为'example.xlsx'// console.log('filePath', this.filePath)// 使用fetch获取public下的文件fetch(this.filePath).then(res => res.arrayBuffer()).then(data => {// 读取xlsx文件const workbook = XLSX.read(data, { type: 'buffer' })// 获取第一个工作表const firstSheetName = workbook.SheetNames[0]const worksheet = workbook.Sheets[firstSheetName]// 将工作表转换为JSONconst tableData = XLSX.utils.sheet_to_json(worksheet)this.$emit('getData', tableData)})}}
}
</script>

3.页面使用(filePath文件路径为public下的user.xlsx)

<template><div class="app-container"><ReadExcel filePath="/user.xlsx" @getData="getData"><el-table :data="tableData" border style="width: 100%"><el-table-column align="center" prop="用户编号" label="用户编号" /><el-table-column align="center" prop="用户名称" label="用户名称" /><el-table-column align="center" prop="用户昵称" label="用户昵称" /><el-table-column align="center" prop="部门" label="部门" /><el-table-column align="center" prop="手机号码" label="手机号码" /></el-table><div class="pagination" style="display: flex; justify-content: flex-end; margin-top: 20px"><el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :page-sizes="[5, 10, 15, 20]" :page-size="listQuery.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="tableData.length" /></div></ReadExcel></div>
</template><script>
import ReadExcel from '@/components/ReadExcel'
export default {name: 'User',components: {ReadExcel},data() {return {listQuery: {pageNum: 1,pageSize: 5},data: []}},computed: {tableData() {return this.data.slice((this.listQuery.pageNum - 1) * this.listQuery.pageSize, this.listQuery.pageNum * this.listQuery.pageSize)}},methods: {getData(val) {this.data = val},handleSizeChange(val) {this.listQuery.pageSize = val},handleCurrentChange(val) {this.listQuery.pageNum = val}}
}
</script>

http://www.lryc.cn/news/482846.html

相关文章:

  • github 以及 huggingface下载模型和数据
  • 使用 Vue 配合豆包MarsCode 实现“小恐龙酷跑“小游戏
  • 51c视觉~合集6
  • STM32(hal库)在串口中,USART和uart有什么区别?
  • 机器学习、深度学习面试知识点汇总
  • FPGA高速设计之Aurora64B/66B的应用与不足的修正
  • 如何通过PHP脚本自动推送WordPress文章至百度站长平台
  • ORA-01092 ORA-14695 ORA-38301
  • upload-labs通关练习---更新到15关
  • WPF 应用程序中使用 Prism 框架时,有多种方式可以注册服务和依赖项
  • 【ESP32】ESP-IDF开发 | 低功耗管理+RTC唤醒和按键唤醒例程
  • Windows 局域网IP扫描工具:IPScaner 轻量免安装
  • HTML的浮动与定位
  • 【网络安全 | 漏洞挖掘】我如何通过路径遍历实现账户接管
  • DB-GPT系列(四):DB-GPT六大基础应用场景part1
  • SpringCloud篇(服务拆分 / 远程调用 - 入门案例)
  • Rust 建造者模式
  • ANN DNN CNN SNN
  • go语言进阶之并发模式
  • Spring Cloud LoadBalancer:负载均衡的服务调用
  • 微信小程序之轮播图
  • 羲和数据集收集器1.3
  • UE--IOS打包失败 AutomationTool exiting with ExitCode=9 (9)
  • 第8章利用CSS制作导航菜单
  • UNIX网络编程-TCP套接字编程
  • 美团代付微信小程序 read.php 任意文件读取漏洞复现
  • centos7 node升级到node18
  • 使用Matlab建立随机森林
  • 【江苏-无锡】《无锡市市级政务信息化建设及运行维护项目支出预算标准(试行)》 -省市费用标准解读系列10
  • 2024-11-12 问AI: [AI面试题] 您将如何设计一个人工智能系统来预测电信公司的客户流失?