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

纯前端实现导入excel数据

准备工作 - 下载 xlsx

npm install xlsx

下面直接上代码👇

<template><div><input type="file" accept=".xlsx, .xls" @change="handleClick"></div>
</template><script lang='ts' setup>
import * as XLSX from 'xlsx'const handleClick = async (e) => {const res = await readerData(e.target.files[0])console.log(res); // 获取的数据格式 { header: [], results: [{}] }
}// 纯前端导入excel
const readerData = (rawFile) => {return new Promise((resolve, reject) => {// 创建一个文件读取的实例const reader = new FileReader()reader.onload = e => { // onload是加载完实例后执行(异步)const data = e.target.resultconst workbook = XLSX.read(data, { type: 'array' })// 获取一张表的表名const firstSheetName = workbook.SheetNames[0]// 根据表名拿到表里面的内容const worksheet = workbook.Sheets[firstSheetName]// 解析成jsonconst results = XLSX.utils.sheet_to_json(worksheet)// 获取表头数据const header = getHeaderRow(worksheet)resolve({ header, results })}// 读取成一个Buffer格式文件reader.readAsArrayBuffer(rawFile)})
}// 获取表头数据
const getHeaderRow = (sheet) => {const headers = []const range = XLSX.utils.decode_range(sheet['!ref'])let Cconst R = range.s.r/* start in the first row */for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]/* find the cell in the first row */let hdr = 'UNKNOWN ' + C // <-- replace with your desired defaultif (cell && cell.t) hdr = XLSX.utils.format_cell(cell)headers.push(hdr)}return headers
}
</script>
http://www.lryc.cn/news/251335.html

相关文章:

  • Matlab下载许可证文件 教程(在账号有许可证的前提下)
  • AI 绘画 | Stable Diffusion 电商模特
  • vue面试题整理(1.0)
  • PyQt基础_007_ 按钮类控件QCombox
  • Android Wifi的扫描机制
  • 类 —— 友元、常/静态成员函数
  • 单页面应用
  • 六、ZooKeeper Java API操作
  • 美甲美睫店预约会员管理小程序作用如何
  • Vue3为什么会推出组合式API
  • windows11 phpstudy_pro php8.2 安装redis扩展
  • 中英双语大模型ChatGLM论文阅读笔记
  • 力扣题:字符串的反转-11.24
  • NIO--07--Java lO模型详解
  • OpenSSH 漏洞修复升级最新版本
  • 【数据结构和算法】无限集中的最小数字
  • SimpleDataFormat 非线程安全
  • SpringBoot : ch12 多模块配置YAML文件
  • TensorRT之LeNet5部署(onnx方式)
  • Xilinx FPGA平台DDR3设计详解(二):DDR SDRAM组成与工作过程
  • ios(swiftui) 属性包装器详解
  • 【智能家居】面向对象编程OOP和设计模式(工厂模式)
  • Docker安装Memcached+Python调用
  • 网页开发 HTML
  • SHAP(五):使用 XGBoost 进行人口普查收入分类
  • LeetCode 8 字符串转整数
  • 前缀和 LeetCode1423. 可获得的最大点数
  • 探索意义的深度:自然语言处理中的语义相似性
  • WT2605-24SS高品质录音语音芯片:实时输出、不保存本地,引领音频技术新潮流
  • Git 合并冲突解决步骤