当前位置: 首页 > news >正文

【React】前端React 代码中预览展示excel文件

封装了ExcelView来展示excel文件,支持显示loading

1.安装依赖

npm i @js-preview/excel
  1. 源码
import React, { useEffect, useRef, useState } from 'react'
import jsPreviewExcel, { JsExcelPreview } from '@js-preview/excel'
import '@js-preview/excel/lib/index.css'
import { Spin } from 'antd'export interface Props {fileInfo: string
}const ExcelView = (props: Props) => {const { fileInfo } = propsconst excelContainerRef = useRef<HTMLDivElement | null>(null)const excelPreviewerRef = useRef<JsExcelPreview | null>(null) // 保存 myExcelPreviewer 的引用const [isLoading, setIsLoading] = useState<boolean>(true)useEffect(() => {const containerElement = excelContainerRef.currentif (containerElement && !excelPreviewerRef.current) {// 初始化 myExcelPreviewer,并保存引用const myExcelPreviewer = jsPreviewExcel.init(containerElement)excelPreviewerRef.current = myExcelPreviewersetIsLoading(true) // 开始加载时设置 loading 状态myExcelPreviewer.preview(fileInfo).then(() => {setIsLoading(false) // 预览完成后取消 loading 状态console.info('预览完成')}).catch((e) => {setIsLoading(false) // 预览失败后取消 loading 状态console.info('预览失败', e)})}}, [fileInfo])return (<div className="relative h-full"><div ref={excelContainerRef} className="h-full" />{isLoading && (<div className="absolute inset-0 flex items-center justify-center bg-white bg-opacity-75"><Spin size="large" /></div>)}</div>)
}export default ExcelView
http://www.lryc.cn/news/292752.html

相关文章:

  • QButtonGroup使用介绍
  • 最近nvm安装报错的原因找到了——npm原淘宝镜像正式到期!
  • docker面试问题二
  • 嵌入式中C 语言中的三块技术难点
  • 基于SSM的个性化旅游攻略定制系统设计与实现(有报告)。Javaee项目。ssm项目。
  • [React源码解析] Fiber (二)
  • Nginx 多项目部署,vue刷新404 解决方案
  • [C++]类和对象(中)
  • Kubernetes operator(五)api 和 apimachinery 篇
  • 接口自动化测试中解决接口间数据依赖
  • 七、测试计划(软件工程)
  • ElementUI Form:Checkbox 多选框
  • 如何统一监听Vue组件报错
  • python爬虫4
  • 【算法】约数之和(数论)
  • 走进CSS过渡效果的奇妙世界:详解CSS Transition
  • C++入坑基础知识点
  • RabbitMQ面试
  • 计算机网络(第六版)复习提纲21
  • 2路DIN2路DO2路AIN远程4GRTU模块钡铼技术S270
  • 从经典到创新,盘点情人节最受欢迎的五款新潮礼物
  • 数据库管理-第141期 DG PDB - Oracle DB 23c(20240129)
  • MySQL原理(二)存储引擎(3)InnoDB
  • 基于Springboot的高校心理教育辅导设计与实现(有报告)。Javaee项目,springboot项目。
  • jenkins pipeline配置maven可选参数
  • 【博士每天一篇论文-算法】Continual Learning Through Synaptic Intelligence,SI算法
  • 【软件工程】建模工具之开发各阶段绘图——UML2.0常用图实践技巧(功能用例图、静态类图、动态序列图状态图活动图)
  • Typora导出word
  • CSS 星空按钮
  • Kotlin快速入门系列10