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

xlsx库插件读取excel文件

input读取xlsx文件内容

  • 效果
  • 代码

前端用input读取 .xlsx文件的内容
xlsx库参考连接

项目中我用的ant-design-vue,不过用input一样的大同小异
注意区分xlsx库和node-xlsx库的使用环境

效果

在这里插入图片描述
在这里插入图片描述

代码

<!--
 * @Descripttion: 
 * @Author: 苍狼一啸八荒惊
 * @Date: 2024-08-18 18:08:51
 * @LastEditTime: 2024-09-27 09:34:04
 * @LastEditors: 一苇以航
-->
<script lang="ts" setup>
// import XLSX from 'node-xlsx';
import * as XLSX from 'xlsx/xlsx.mjs';
const data = reactive({ fileList: [], loading: false });

const customUpload = (info: any) => {
  data.loading = true;
  //文件后缀名
  // let suffixName = info.file.name.split('.').pop();

  let fileReader = new FileReader();
  fileReader.readAsArrayBuffer(info.file);

  fileReader.onload = function (e: any) {
    const data = new Uint8Array(e.target.result);
    const workbook = XLSX.read(data, { type: 'array' });

    // 假设我们只读取第一个工作表
    const firstSheetName = workbook.SheetNames[0];
    //所有工作表名称
    // console.log(workbook.SheetNames);
    //所有工作表数据 需要用XLSX.utils.sheet_to_json(worksheet, { header: 1 });转换成数组格式
    // console.log(workbook.Sheets);
    const worksheet = workbook.Sheets[firstSheetName];
    const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
    // console.log(jsonData);
    // 将JSON数据转换成文本
    let text = JSON.stringify(jsonData);
    // console.log(text);
  };

  data.loading = false;
};
</script>
<template>
  <Header />

  <div class="main-container">
    <a-card class="mt-20" title="样本管理">
      <template #extra>
        <a-space>
          <a-upload
            v-model:file-list="data.fileList"
            :customRequest="customUpload"
            accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
            name="file"
            :multiple="false"
            :showUploadList="false"
          >
            <a-button :loading="data.loading" type="primary">导入文件</a-button>
          </a-upload>
        </a-space>
      </template>
    </a-card>
  </div>
</template>

<style lang="less" scoped></style>


http://www.kler.cn/a/321666.html

相关文章:

  • web——sqliabs靶场——第六关——报错注入和布尔盲注
  • 编译原理(手绘)
  • CSS基础知识04
  • Python教程笔记(3)
  • Unity图形学之Blend指令
  • git命令提交项目
  • 在使用 Docker 时,用户可能会遇到各种常见的错误和问题
  • 使用python进行自然语言处理的示例
  • jmeter-请求参数加密-MD5加密
  • 美食共享圈:Spring Boot校园周边美食平台
  • uniapp踩坑 tabbar页面数据刷新了但视图没有更新
  • 【1分钟学会】JSON
  • Sentinel-1 数据处理时如何手动下载高程数据
  • 形象解释暂停方法和旁路方法
  • 力扣30. 串联所有单词的子串
  • Linux中的进程替换
  • linux:chown用法详解
  • 微调大模型(Finetuning Large Language Models)—Where finetuning fits in(二)
  • Oracle 相关的工具使用 SQL Developer , sqlplus
  • Kotlin:变量声明,null安全,条件语句,函数,类与对象
  • SpringBoot-全局处理异常,时间格式,跨域,拦截器,监听器
  • Brave编译指南2024 MacOS篇-获取源码(三)
  • 如何解决: Java商城系统开发过程中 开发难度大和时间紧的问题
  • python-rpc-windows服务器C#项目远程调用Linux服务器上的python脚本
  • 数据库常见概念
  • React学习笔记(2.0)