最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React實(shí)現(xiàn)Excel文件的導(dǎo)出與在線預(yù)覽功能

 更新時(shí)間:2023年12月25日 09:59:47   作者:餃子不放糖  
這篇文章主要為大家詳細(xì)介紹了如何利用?React?18?的強(qiáng)大功能,演示如何使用?React?18?編寫?Excel?文件的導(dǎo)出與在線預(yù)覽功能,需要的小伙伴可以參考下

引言

React 18 的發(fā)布帶來了一系列全新的特性和改進(jìn),其中包括對并發(fā)渲染、狀態(tài)管理等方面的增強(qiáng)。在這篇文章中,我們將利用 React 18 的強(qiáng)大功能,演示如何使用 React 18 編寫 Excel 文件的導(dǎo)出與在線預(yù)覽功能。

第一部分:Excel 文件導(dǎo)出

1. 安裝依賴

首先,確保你的項(xiàng)目已經(jīng)升級到 React 18,并安裝最新版本的 xlsx 庫。

npm install xlsx@0.17.1-alpha.3 react@18 react-dom@18 --save

2. 創(chuàng)建導(dǎo)出組件

創(chuàng)建一個(gè)名為 ExcelExport 的組件,并利用 react/jsx-concurrent-mode 特性實(shí)現(xiàn)并發(fā)渲染。

import React, { unstable_ConcurrentMode as ConcurrentMode } from 'react';
import * as XLSX from 'xlsx';

const ExcelExport = () => {
  const exportToExcel = () => {
    const data = [
      ['姓名', '年齡'],
      ['Alice', 25],
      ['Bob', 30],
      ['Charlie', 22],
    ];

    const ws = XLSX.utils.aoa_to_sheet(data);
    const wb = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');

    XLSX.writeFile(wb, 'exported_data.xlsx');
  };

  return (
    <ConcurrentMode>
      <div>
        <button onClick={exportToExcel}>導(dǎo)出Excel</button>
      </div>
    </ConcurrentMode>
  );
};

export default ExcelExport;

3. 實(shí)現(xiàn)導(dǎo)出邏輯

exportToExcel 方法中,我們依然使用 xlsx 庫創(chuàng)建工作簿并導(dǎo)出文件,與 React 18 的并發(fā)渲染特性無縫集成。

第二部分:在線預(yù)覽 Excel 文件

1. 安裝依賴

為了實(shí)現(xiàn)在線預(yù)覽,我們依然使用 react-excel-renderer

npm install react-excel-renderer --save

2. 創(chuàng)建預(yù)覽組件

創(chuàng)建一個(gè)名為 ExcelPreview 的組件,并利用 React 18 的 Concurrent Mode 實(shí)現(xiàn)并發(fā)渲染。

import React, { useState } from 'react';
import ReactDataSheet from 'react-datasheet';
import 'react-datasheet/lib/react-datasheet.css';
import { OutTable, ExcelRenderer } from 'react-excel-renderer';

const ExcelPreview = () => {
  const [dataLoaded, setDataLoaded] = useState(false);
  const [rows, setRows] = useState([]);
  const [cols, setCols] = useState([]);

  const fileHandler = (event) => {
    let fileObj = event.target.files[0];

    ExcelRenderer(fileObj, (err, resp) => {
      if (err) {
        console.log(err);
      } else {
        setDataLoaded(true);
        setCols(resp.cols);
        setRows(resp.rows);
      }
    });
  };

  return (
    <ConcurrentMode>
      <div>
        <input
          type="file"
          onChange={(event) => fileHandler(event)}
          style={{ padding: '10px' }}
        />
        {dataLoaded && (
          <ReactDataSheet
            data={rows}
            valueRenderer={(cell) => cell.value}
            sheetRenderer={(props) => <OutTable {...props} />}
          />
        )}
      </div>
    </ConcurrentMode>
  );
};

export default ExcelPreview;

3. 文件上傳與在線預(yù)覽

fileHandler 方法中,我們?nèi)匀皇褂?react-excel-renderer 從上傳的Excel文件中提取數(shù)據(jù),并將其渲染到 ReactDataSheet 中。這里也充分利用了 React 18 的 Concurrent Mode 特性,提升了渲染性能。

結(jié)語

通過這篇文章,我們學(xué)習(xí)了如何在 React 18 中實(shí)現(xiàn) Excel 文件的導(dǎo)出和在線預(yù)覽。React 18 帶來的并發(fā)渲染特性能夠更好地處理大規(guī)模數(shù)據(jù),提高了性能和用戶體驗(yàn)。

到此這篇關(guān)于React實(shí)現(xiàn)Excel文件的導(dǎo)出與在線預(yù)覽功能的文章就介紹到這了,更多相關(guān)React Excel導(dǎo)出與預(yù)覽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React版本18.xx降低為17.xx的方法實(shí)現(xiàn)

    React版本18.xx降低為17.xx的方法實(shí)現(xiàn)

    由于現(xiàn)在react默認(rèn)創(chuàng)建是18.xx版本,但是我們現(xiàn)在大多使用的還是17.xx或者更低的版本,于是要對react版本進(jìn)行降級,本文主要介紹了React版本18.xx降低為17.xx的方法實(shí)現(xiàn),感興趣的可以了解一下
    2023-11-11
  • React?錯(cuò)誤邊界Error?Boundary使用示例解析

    React?錯(cuò)誤邊界Error?Boundary使用示例解析

    這篇文章主要為大家介紹了React?錯(cuò)誤邊界Error?Boundary使用示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • React父子組件互相通信的實(shí)現(xiàn)示例

    React父子組件互相通信的實(shí)現(xiàn)示例

    React中是單向數(shù)據(jù)流,數(shù)據(jù)只能從父組件通過屬性的方式傳給其子組件,本文主要介紹了React父子組件互相通信的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • ahooks?useInfiniteScroll源碼解析

    ahooks?useInfiniteScroll源碼解析

    這篇文章主要為大家介紹了ahooks?useInfiniteScroll源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • React組件通信淺析

    React組件通信淺析

    這篇文章主要介紹了React組件通信,在開發(fā)中組件通信是React中的一個(gè)重要的知識點(diǎn),本文通過實(shí)例代碼給大家講解react中常用的父子、跨組件通信的方法,需要的朋友可以參考下
    2022-12-12
  • React實(shí)現(xiàn)歌詞滾動效果(跟隨音樂播放時(shí)間滾動)

    React實(shí)現(xiàn)歌詞滾動效果(跟隨音樂播放時(shí)間滾動)

    這篇文章主要為大家詳細(xì)介紹了React實(shí)現(xiàn)歌詞滾動效果(跟隨音樂播放使勁按滾動),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2024-02-02
  • 在React項(xiàng)目中使用TypeScript詳情

    在React項(xiàng)目中使用TypeScript詳情

    這篇文章主要介紹了在React項(xiàng)目中使用TypeScript詳情,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • React-redux實(shí)現(xiàn)小案例(todolist)的過程

    React-redux實(shí)現(xiàn)小案例(todolist)的過程

    這篇文章主要為大家詳細(xì)介紹了React-redux實(shí)現(xiàn)小案例(todolist)的過程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • react 移動端實(shí)現(xiàn)列表左滑刪除的示例代碼

    react 移動端實(shí)現(xiàn)列表左滑刪除的示例代碼

    這篇文章主要介紹了react 移動端實(shí)現(xiàn)列表左滑刪除的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • react+ant design實(shí)現(xiàn)Table的增、刪、改的示例代碼

    react+ant design實(shí)現(xiàn)Table的增、刪、改的示例代碼

    這篇文章主要介紹了react+ant design實(shí)現(xiàn)Table的增、刪、改的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12

最新評論

泰宁县| 漳平市| 赣州市| 临夏市| 四会市| 柘城县| 资兴市| 武清区| 康保县| 颍上县| 富顺县| 大姚县| 沿河| 正定县| 敖汉旗| 文水县| 西青区| 元朗区| 金秀| 伊春市| 广西| 阿克陶县| 滁州市| 穆棱市| 余庆县| 通江县| 新田县| 上栗县| 彩票| 宁陵县| 白城市| 海林市| 铜川市| 云阳县| 额济纳旗| 鄂伦春自治旗| 万载县| 岱山县| 博野县| 宜都市| 屯门区|