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

相关推荐
享誉霸王6 小时前
15、告别混乱!Vue3复杂项目的规范搭建与基础库封装实战
前端·javascript·vue.js·前端框架·json·firefox·html5
礼拜天没时间.6 小时前
JumpServer堡垒机部署与实战:从0到1搭建统一运维入口
linux·运维·架构·堡垒机·jumpserver·sre
林姜泽樾6 小时前
linux入门第四章,cd指令和相对、绝对路径
linux·运维·服务器
jjjxxxhhh1237 小时前
[Google Test]- Google Test Ubuntu 完整验证指南
linux·数据库·ubuntu
江畔何人初7 小时前
kubernetes中configmap与secret的区别
linux·运维·云原生·容器·kubernetes
夏乌_Wx7 小时前
mybash:简易 Shell 实现的设计思路与核心模块解析
linux·服务器·前端
程序员爱德华7 小时前
Linux中的 源 和 Channels
linux·channels·
2501_918126917 小时前
stm32核心板是什么属性?
linux·c语言·stm32·嵌入式硬件·个人开发
500佰8 小时前
Hive常见故障多案例FAQ宝典 --项目总结(宝典一)
大数据·linux·数据仓库·hive·hadoop·云计算·运维开发
henry1010108 小时前
Ansible自动化运维全攻略(AI生成)
linux·运维·python·ansible·devops