antd本地上传excel文件并读取文件的数据转为json

1.写一个上传

这里直接用upload组件即可

javascript 复制代码
<Upload {...uploadProps} maxCount={1} accept={".xlsx"}>
                      <Button icon={<UploadOutlined />}>
                        {`${formatMessage({id: 'clk_upload'}, {file: formatMessage({id: 'excel_file'})})}`}
                      </Button>
                    </Upload>

2.写props

javascript 复制代码
const uploadProps: any = {
    onRemove: (file: any) => {
      const index = fileList.indexOf(file);
      const newFileList = fileList.slice();
      newFileList.splice(index, 1);
      setFileList(newFileList);
    },
    beforeUpload: (file: any) => {
      let reader = new FileReader();
      reader.onload = function(event: any) {
        let data = new Uint8Array(event.target.result);
        let workbook = XLSX.read(data, {type: 'array'});
        let worksheet = workbook.Sheets[workbook.SheetNames[0]];
        let jsonData = XLSX.utils.sheet_to_json(worksheet, {header: 1});
      reader.readAsArrayBuffer(file);
      setFileList(file?.name?.includes('xlsx') ? [file]: []);
      return false;
    },
    fileList
  };

beforeUpload函数里处理上传的数据转成Uint8Array,读取文件中的第一个表,使用.utils.sheet_to_json方法读出json数据,具体在进行处理即可。

相关推荐
cuijiecheng201816 小时前
Linux下libsocket库的使用
linux·运维·服务器
BIBI204916 小时前
通过 HeidiSQL 连接 CentOS 7 中的 MySQL 5.7
linux·windows·mysql·centos·数据库管理·环境搭建·服务器运维
小码吃趴菜16 小时前
网络编程-基础网络概念
linux·网络
驾数者16 小时前
Flink SQL格式集成:JSON、Avro、Protobuf序列化详解
sql·flink·json
wdfk_prog16 小时前
[Linux]学习笔记系列 -- [fs]ramfs
linux·笔记·学习
一尘之中16 小时前
在 Ubuntu 上安装 Docker 的完整指南(使用国内镜像源)
linux·docker·ai写作
RisunJan16 小时前
Linux命令-ip命令(网络配置工具)
linux·网络·tcp/ip
oMcLin16 小时前
如何在Ubuntu 20.04上配置并优化XFS文件系统,提升大规模数据处理与存储的性能?
linux·运维·ubuntu
杰克崔16 小时前
内核调度子系统专栏导航——包括免费专栏里调度子系统部分(持续更新)
linux·运维·服务器·车载系统
拾光Ծ16 小时前
进程程序替换与exec函数族详解 与进程替换实战:自主Shell命令行解释器实现
linux·运维·服务器·阿里云·解释器模式