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数据,具体在进行处理即可。

相关推荐
qq_448011161 小时前
python HTTP请求同时返回为JSON的异常处理
python·http·json
hkhkhkhkh1231 小时前
Linux设备节点基础知识
linux·服务器·驱动开发
HZero.chen2 小时前
Linux字符串处理
linux·string
张童瑶2 小时前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
汪汪队立大功1232 小时前
什么是SELinux
linux
石小千2 小时前
Linux安装OpenProject
linux·运维
柏木乃一2 小时前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程
Lime-30902 小时前
制作Ubuntu 24.04-GPU服务器测试系统盘
linux·运维·ubuntu
百年渔翁_肯肯3 小时前
Linux 与 Unix 的核心区别(清晰对比版)
linux·运维·unix
胡闹543 小时前
Linux查询防火墙放过的端口并额外增加需要通过的端口命令
linux·运维·windows