当前位置:首页 > React

react实现word预览

2026-01-27 06:25:44React

React 实现 Word 预览

在 React 中实现 Word 文档预览可以通过多种方式完成,以下是几种常见的方法:

使用第三方库 mammoth.js

mammoth.js 是一个用于将 .docx 文件转换为 HTML 的库,适合在浏览器端直接处理 Word 文档。

安装依赖:

npm install mammoth

示例代码:

import React, { useState } from 'react';
import * as mammoth from 'mammoth';

function WordPreview() {
  const [html, setHtml] = useState('');

  const handleFileChange = async (e) => {
    const file = e.target.files[0];
    const reader = new FileReader();
    reader.onload = async (event) => {
      const arrayBuffer = event.target.result;
      const result = await mammoth.extractRawText({ arrayBuffer });
      setHtml(result.value);
    };
    reader.readAsArrayBuffer(file);
  };

  return (
    <div>
      <input type="file" onChange={handleFileChange} accept=".docx" />
      <div dangerouslySetInnerHTML={{ __html: html }} />
    </div>
  );
}

export default WordPreview;

使用 Office.js 官方库

Office.js 是微软官方提供的库,适合在 Office 插件或网页中嵌入 Word 预览功能。

安装依赖:

npm install @microsoft/office-js

示例代码:

import React, { useEffect } from 'react';
import * as Office from '@microsoft/office-js';

function WordPreview() {
  useEffect(() => {
    Office.onReady(() => {
      console.log('Office.js is ready');
    });
  }, []);

  return (
    <div>
      <button onClick={() => Office.context.document.getFileAsync()}>
        Preview Word
      </button>
    </div>
  );
}

export default WordPreview;

使用 Google Docs Viewer

通过嵌入 Google Docs Viewer 的 iframe 实现预览,适合快速实现但不支持编辑。

示例代码:

import React from 'react';

function WordPreview() {
  const docUrl = 'https://docs.google.com/viewer?url=YOUR_DOC_URL&embedded=true';

  return (
    <div>
      <iframe
        src={docUrl}
        width="100%"
        height="500px"
        frameBorder="0"
      />
    </div>
  );
}

export default WordPreview;

使用后端服务转换

如果文档需要更复杂的处理,可以通过后端服务将 Word 转换为 PDF 或 HTML,再在 React 中显示。

示例代码(假设后端返回 HTML):

react实现word预览

import React, { useState, useEffect } from 'react';
import axios from 'axios';

function WordPreview() {
  const [html, setHtml] = useState('');

  useEffect(() => {
    axios.get('/api/convert-word-to-html')
      .then(response => setHtml(response.data));
  }, []);

  return (
    <div dangerouslySetInnerHTML={{ __html: html }} />
  );
}

export default WordPreview;

注意事项

  • 文件安全性:直接使用 dangerouslySetInnerHTML 需确保内容来源可信,避免 XSS 攻击。
  • 性能优化:大文件处理时建议分片或使用后端服务。
  • 格式兼容性:某些复杂格式可能无法完全保留,需测试目标文档的渲染效果。

以上方法可根据实际需求选择,mammoth.js 适合纯前端解决方案,Office.js 适合深度集成,Google Docs Viewer 适合快速嵌入。

标签: reactword
分享给朋友:

相关文章

react如何读

react如何读

React 的发音 React 的发音为 /riˈækt/(音标),读作“瑞-艾克特”。其中: “Re” 发音类似英文单词 “read” 的开头部分。 “act” 发音与英文单词 “act” 一…

react如何卸载

react如何卸载

卸载 React 项目或依赖 如果需要完全卸载 React 项目或相关依赖,可以按照以下步骤操作: 删除项目文件夹 直接删除整个项目文件夹是最彻底的方式。确保已备份重要代码或配置文件。 卸载全局安…

react如何拓展

react如何拓展

React 拓展方法 使用高阶组件(HOC) 高阶组件是一种复用组件逻辑的方式,通过接收一个组件并返回一个新组件实现功能拓展。例如,为组件添加日志功能: function withLogging…

react如何开发

react如何开发

React 开发基础步骤 安装 Node.js 和 npm/yarn 确保系统已安装 Node.js(包含 npm)或 Yarn。React 项目依赖这些工具管理包和运行脚本。官方推荐使用 Node.…

如何安装react

如何安装react

安装React的方法 方法一:使用Create React App(官方推荐) Create React App是官方提供的脚手架工具,适合快速搭建React项目。确保已安装Node.js(建议版本≥…

react如何发布

react如何发布

发布React应用的步骤 构建生产版本 使用以下命令生成优化后的生产版本代码,代码会被压缩并移除开发环境中的调试工具: npm run build 构建完成后会生成build文件夹,包含所有静态资源…