React项目,基于antd读取excel文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React项目,基于antd读取excel文件相关的知识,希望对你有一定的参考价值。

参考技术A SheetJS js-xlsx 是一款能够读写多种格式表格的插件,浏览器支持良好,并且能在多个语言平台上使用

GitHub地址 GitHub - SheetJS/js-xlsx: SheetJS Community Edition -- Spreadsheet Toolkit

    npm install xlsx --save

    如果安装失败,删除package.lock文件,再执行npm相关命令。

    import *as XLSXfrom 'xlsx';

onImportExcel = file =>

        let data = [];// 存储获取到的数据

        // 通过FileReader对象读取文件

      const fileReader =new FileReader();

      fileReader.readAsBinaryString(file);  //二进制

      fileReader.onload = event =>

     try

                    const result = event.target;

                // 以二进制流方式读取得到整份excel表格对象

                  const workbook = XLSX.read(result, type:'binary' );

                // 遍历每张工作表进行读取(这里默认只读取第一张表)

                 for (const sheet in workbook.Sheets)

                    if (workbook.Sheets.hasOwnProperty(sheet))

                        // 利用 sheet_to_json 方法将 excel 转成 json 数据

                      data =data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));

                    // break; // 如果只取第一张表,就取消注释这行

       



    console.log(data);

    catch (e)

// 这里可以抛出文件类型错误不正确的相关提示

      console.log('文件类型不正确');

      return;

    

 ;



<Form.Item label="报表上传">

    <Upload name="excel" action="" listType="text"  accept="file" beforeUpload=this.onImportExcel     showUploadList=true>

    <Button>

        <Icon type="upload" />点击上传报表

    </Button>

    </Upload>

</Form.Item>

以上是关于React项目,基于antd读取excel文件的主要内容,如果未能解决你的问题,请参考以下文章

基于react的UI组件库(antd)使用入门

react antd如何读取doc文件

基于React + Antd 实现的斗兽棋web应用

基于create-react-app脚手架,按需加载antd组件以及less样式

记一次webpack4+react+antd项目优化打包文件体积的过程

react-native实践(基于antd-mobile)