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

React(四):DOCX文件在线预览

效果

在这里插入图片描述

注意

⚠️注意:部分文件预览存在问题

依赖

$ yarn add docx-preview
$ yarn add jszip

源码

import './index.scss';
import {useRef} from 'react';
import type {UploadRequestOption} from 'rc-upload/lib/interface';
import {Upload, Button, message} from 'antd';
import JSZip from 'jszip';
import * as docx from 'docx-preview';function PreviewDOCX() {const containerRef = useRef<HTMLDivElement>(null);const fileUpload = async (options: UploadRequestOption) => {if ((options.file as File).name.split('.').pop()!.toLowerCase() !== 'docx') return message.error('仅支持docx文件!');const zip = await JSZip.loadAsync(options.file as File);const blob = await zip.generateAsync({type: 'blob'});docx.renderAsync(blob, containerRef.current!).then(res => {console.log(res);}).catch(err => {console.log({err});});};return (<><Upload className="upload-btn" action="#" customRequest={fileUpload} showUploadList={false}><Button type="primary">点击上传</Button></Upload><div className="docx-preview-wrap" ref={containerRef}></div></>);
}export default PreviewDOCX;

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024杭电多校(5) 1008. 猫咪们狂欢【带权最大独立集】
  • 宅家也能高效办公?试试这四款款远程控制神器!
  • 【2024年华数杯全国大学生数学建模竞赛】C题:老外游中国 问题思路分析及Python代码实现
  • C语言初阶(12)
  • 周鸿祎回应将成三六零第一大股东:会和公司一起走下去
  • 学习硬件测试04:触摸按键+PWM 驱动蜂鸣器+数码管(P62~P67、P71、P72)
  • mysql介绍
  • 1、.Net UI框架:WPF - .Net宣传系列文章
  • 反转链表(LeetCode)
  • 重燃代码之光:在PyCharm中恢复自动高亮的秘籍
  • Linux系统中的高级内核模块调试技术
  • override的作用和好处
  • Yarn:一个快速、可靠且安全的JavaScript包管理工具
  • 日期类的习题
  • 2024华数杯C题解题思路、参考论文已出(无偿分享)~
  • 《剑指offer》分解让复杂问题更简单
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • js继承的实现方法
  • node学习系列之简单文件上传
  • Python利用正则抓取网页内容保存到本地
  • Python中eval与exec的使用及区别
  • React中的“虫洞”——Context
  • 浮动相关
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 探索 JS 中的模块化
  • 微服务框架lagom
  • 用Python写一份独特的元宵节祝福
  • const的用法,特别是用在函数前面与后面的区别
  • ​​​​​​​​​​​​​​Γ函数
  • ​如何在iOS手机上查看应用日志
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • $.ajax()参数及用法
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (回溯) LeetCode 77. 组合
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (一)Linux+Windows下安装ffmpeg
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原)本想说脏话,奈何已放下
  • (转) Android中ViewStub组件使用
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转载)深入super,看Python如何解决钻石继承难题
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .chm格式文件如何阅读
  • .NET Core 实现 Redis 批量查询指定格式的Key