返回顶部
首页 > 资讯 > 前端开发 > JavaScript >React全面解析excel文件
  • 348
分享到

React全面解析excel文件

2024-04-02 19:04:59 348人浏览 薄情痞子
摘要

目录React解析excel文件React上传excel预览React解析excel文件 首先安装安装xlsx插件 yarn add xlsx 使用xlsx解析         c

React解析excel文件

首先安装安装xlsx插件

yarn add xlsx

使用xlsx解析

    
    const HandleImportFile = (info) => {
        let files = info.file;
        // 获取文件名称
        let name = files.name
        // 获取文件后缀
        let suffix = name.substr(name.lastIndexOf("."));
        let reader = new FileReader();
        reader.onload = (event) => {
            try {
                // 判断文件类型是否正确
                if (".xls" != suffix && ".xlsx" != suffix) {
                    message.error("选择Excel格式的文件导入!");
                    return false;
                }
                let { result } = event.target;
                // 读取文件
                let workbook = XLSX.read(result, { type: 'binary' });
                let data = [];
                // 循环文件中的每个表
                for (let sheet in workbook.Sheets) {
                    if (workbook.Sheets.hasOwnProperty(sheet)) {
                        // 将获取到表中的数据转化为JSON格式
                        data = data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
                    }
                }
                console.log('data:', data);
            } catch (e) {
                message.error('文件类型不正确!');
            }
        }
        reader.readAsBinaryString(files);
        setIsLoading(false);
    }

使用antd的Upload组件上传文件

 <Upload
    accept=".xls , .xlsx"
    maxCount={1}
    showUploadList={false}
    customRequest={HandleImportFile}
  >
   <Button icon={<UploadOutlined />} type="primary">上传文件</Button>
 </Upload>

React上传excel预览

import React from 'react';
import * as XLSX from 'xlsx';
import {message, Table,  Upload} from 'antd';
const { Dragger } = Upload;
 
export class UploadFile extends React.Component {
  state = {
     tableData: [],
     tableHeader: []
  };
 
  toReturn = () => {
     this.props.close();
  };
 
toSubmit = () => {
   const _this = this;
   console.log(_this.state.tableData);
};
 
render() {
   return (
      <div>
            <Dragger name="file"
               accept=".xls,.xlsx" maxCount={1}
               beforeUpload={function () {
                  return false;
               }}
               onChange={this.uploadFilesChange.bind(this)}
               showUploadList={false}>
               <p className="ant-upload-text">
                  <span>点击上传文件</span>
                     或者拖拽上传
               </p>
            </Dragger>
            <Table 
               columns={this.state.tableHeader} 
               dataSource={this.state.tableData}
               style={{marginTop: '20px'}}
               pagination={false}
            />
         
   
      </div>
   );
}
 
uploadFilesChange(file) {
   // 通过FileReader对象读取文件
   const fileReader = new FileReader();
   // 以二进制方式打开文件
   fileReader.readAsBinaryString(file.file);
   fileReader.onload = event => {
      try {
         const {result} = event.target;
         // 以二进制流方式读取得到整份excel表格对象
         const workbook = XLSX.read(result, {type: 'binary'});
         // 存储获取到的数据
         let data = {};
         // 遍历每张工作表进行读取(这里默认只读取第一张表)
         for(const sheet in workbook.Sheets) {
            let tempData = [];
            // esline-disable-next-line
            if(workbook.Sheets.hasOwnProperty(sheet)) {
               // 利用 sheet_to_json 方法将 excel 转成 json 数据
               console.log(sheet);
               data[sheet] = tempData.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
            }
         }
         const excelData = data.Sheet1;
         const excelHeader = [];
         // 获取表头
         for(const headerAttr in excelData[0]) {
            const header = {
               title: headerAttr,
               dataindex: headerAttr,
               key: headerAttr
            };
            excelHeader.push(header);
         }
         // 最终获取到并且格式化后的 json 数据
         this.setState({
            tableData: excelData,
            tableHeader: excelHeader,
         });
         console.log(this.state);
      } catch(e) {
         // 这里可以抛出文件类型错误不正确的相关提示
         console.log(e);
         message.error('文件类型不正确!');
      }
   };
}
}
export default UploadFile;
 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: React全面解析excel文件

本文链接: https://lsjlt.com/news/167582.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • React全面解析excel文件
    目录React解析excel文件React上传excel预览React解析excel文件 首先安装安装xlsx插件 yarn add xlsx 使用xlsx解析         c...
    99+
    2024-04-02
  • React props全面详细解析
    目录一、Props 是什么二、props children模式1. props 插槽组件2. render props模式3. render props模式三、进阶实践一、Props...
    99+
    2022-11-13
    React props React props的使用
  • Java解析Excel文件
    Java解析Excel ​ Java解析Excel可以说在日常工作中必不可少的一个需求。解析Excel有很多方式,主流有poi,easyexcel等技术,本文使用springboot+poi技术来实现解析excel文件。其中包含解析本地文件...
    99+
    2023-08-18
    excel java 开发语言
  • 全面解析SpringBoot配置文件
    目录1.文件类型1.1properties1.2yaml简介基本语法数据类型举例2.配置提示1.文件类型 1.1properties 同以前的properties用法。 1.2yam...
    99+
    2024-04-02
  • 全面解析SpringBoot文件上传功能
    这些天忙着刷题,又怕遗忘了spring boot, 所以抽出一点时间折腾折腾,加深点印象。 spring boot 的文件上传与 spring mvc 的文件上传基本一致,只需注意一些配置即可。 环境要求: Spring Boot v1.5...
    99+
    2023-05-30
    springboot 文件上传 bo
  • React实现导入导出Excel文件
    目录表示层 业务层 核心插件xlsx excel 导入 excel 导出 excel 导出插件(js-export-excel) 实现效果结语 表示层 这里我是使用的是antd的U...
    99+
    2024-04-02
  • React框架核心原理全面深入解析
    目录前言第一章 基本概念第二章 createElement 函数第三章 render函数第四章 Concurrent Mode第五章 Fibers第六章 Render and Com...
    99+
    2022-11-16
    React框架的原理 React框架核心
  • React怎么实现导入导出Excel文件
    这篇文章主要介绍“React怎么实现导入导出Excel文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React怎么实现导入导出Excel文件”文章能帮助大家解决问题。表示层这里我是使用的是ant...
    99+
    2023-06-05
  • java解析Excel文件的方法实例详解
    目录介绍1.1 pom依赖1.2 将数据流转化为可解析的Workbook类型文件1.3 解析1.4 Controller层接收前端传递的Excel文件(前端使用Element-ui的...
    99+
    2024-04-02
  • Python全面解析json数据并保存为csv文件
    目录解析json数据并保存为csv文件完整代码将json任意行文件转为csv文件并保存将json格式的前3000条数据存入csv解析json数据并保存为csv文件 首先导入两个包: ...
    99+
    2024-04-02
  • Java如何实现超大Excel文件解析
    今天小编给大家分享一下Java如何实现超大Excel文件解析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、XSSFpac...
    99+
    2023-07-02
  • 自动化测试如何解析excel文件?
    前言   自动化测试中我们存放数据无非是使用文件或者数据库,那么文件可以是csv,xlsx,xml,甚至是txt文件,通常excel文件往往是我们的首选,无论是编写测试用例还是存放测试数据,excel都是很方便的。那么今天我们就把不同模块...
    99+
    2023-01-31
    文件 测试 excel
  • 头文件不宜定义变量的原因全面解析
    test-1.0使用#ifndef只是防止了头文件被重复包含(其实本例中只有一个头件,不会存在重复包含的问题),但是无法防止变量被重复定义。复制代码 代码如下:# vi test.c...
    99+
    2022-11-15
    头文件 定义变量
  • Android 文件读写最全解析
    本文目录Android文件读写概述读取raw目录文件读取assets目录文件data/data/(包名) 目录文件读写写数据读数据sdcard文...
    99+
    2022-06-06
    Android
  • Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
    目录一、XSSF二、SXSSF三、easyExcel一、XSSF package com.yy.demo01; import java.io.FileInputStream; i...
    99+
    2024-04-02
  • 文件包含漏洞全面详解
    文件包含漏洞总结 一、什么是文件包含漏洞二、本地文件包含漏洞(LFI)三、LFI漏洞利用技巧1.配合文件上传使用2.包含Apache日志文件3.包含SESSION文件4.包含临时文件 四、...
    99+
    2023-08-31
    php web安全 开发语言
  • Android事件分发机制全面解析
    目录事件分发机制 ViewGroup.dispatchTouchEvent 源码分析 View.dispatchTouchEvent 和 View.onTouchEvent 源码分析...
    99+
    2024-04-02
  • Java操作Excel文件解析与读写方法详解
    目录一、概述二、Apache POI三、XSSF解析Excel文件1.Workbook(Excel文件)2.Sheet(工作簿)3.Row(数据行)4.Cell(单元格)四、超大Ex...
    99+
    2022-11-13
    Java Excel文件解析 Java Excel文件读写
  • create-react-app项目配置全解析
    目录引言准备工作启动命令start.jsbuild.js目录结构配置解析weback.config.js1.entry结语引言 create-react-app(以下简称cra)作为...
    99+
    2024-04-02
  • springboot中Excel文件下载踩坑大全
    目录项目场景:Spring boot文件下载问题一:下载的文件名称出现中文乱码的问题问题二:在swagger中测试下载接口,点击下载的文件,发现文件名是乱码的问题问题四:开发环境下载...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作