如何使用JavaScript获取word的内容

 更新时间:2025年02月26日 16:23:24   作者:mob64ca12f63d4f  
这篇文章主要为大家详细介绍了如何使用JavaScript获取word的内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

一、流程概述

在这个过程中,我们将通过以下步骤获取Word文件的文字内容。操作需要使用到FileReader对象以及库如mammoth.js。以下是详细的步骤流程表:

步骤描述
1引入必要的库
2创建文件选择器
3添加文件选择事件监听器
4使用FileReader读取文件内容
5处理读取的内容并输出

二、步骤详解

1. 引入必要的库

首先,确保你在HTML文件中引入mammoth.js库。这个库能够帮助我们从Word文件中提取文本。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Word文件读取</title>
    <script src="
</head>
<body>
    <!-- 这里后面会添加其他HTML元素 -->
</body>
</html>

注释:引入mammoth.js库,以便后续提取Word文件内容。

2. 创建文件选择器

接下来,我们需要一个文件选择器来让用户选择他们的Word文件。

<input type="file" id="upload" accept=".docx"/>
<div id="output"></div>

注释:<input>标签用于文件上传,accept属性限制用户只能选择.docx文件。

3. 添加文件选择事件监听器

我们需要监听用户在文件选择器中的操作:

document.getElementById('upload').addEventListener('change', function(event) {
    var file = event.target.files[0]; // 获取用户选择的文件
    if (file) {
        var reader = new FileReader(); // 创建文件读取对象
        reader.onload = function(e) {
            var arrayBuffer = e.target.result; // 获取文件内容
            mammoth.extractRawText({ arrayBuffer: arrayBuffer })
                .then(displayResult) // 提取文本并显示
                .catch(handleError); // 错误处理
        };
        reader.readAsArrayBuffer(file); // 读取文件为字节流
    }
});

注释:

addEventListener:监听change事件,当用户选择文件时触发。

FileReader():JavaScript提供的用于读取文件的API。

reader.onload:读取完成后调用的函数。

mammoth.extractRawText:提取Word文件文本的方法。

4. 处理读取的内容并输出

定义displayResult和handleError函数,通过它们来显示结果和处理错误。

function displayResult(result) {
    document.getElementById('output').innerText = result.value; // 显示提取的文本
}

function handleError(err) {
    console.error('Error: ', err); // 输出错误信息
}

注释:

displayResult:该函数将提取的文本显示在output的<div>元素中。

handleError:用于输出读取过程中可能发生的错误到控制台。

类图

使用Mermaid语法可以绘制如下一张类图,展示代码组件之间的关系。

旅行图

通过Mermaid语法的旅行图,可以清晰了解我们实现上述功能的过程。

三、小结

通过以上步骤,我们成功地运用JavaScript从Word文件中提取了文字内容。这种技巧在需要处理用户上传文档内容的场景中非常有用,例如在线文档编辑、内容管理系统等。学习并掌握这一技能,将极大提高你的前端开发能力。

四、方法补充

除了上文的方法,小编为大家整理了其他JavaScript获取word内容的方法,希望对大家有所帮助

示例代码

把docx文件中表格转化为json二维数组

import { convertToHtml } from "mammoth"
import { JSDOM } from "jsdom"

convertToHtml({ path: "./test.docx" })
    .then(function (result) {
        const html = result.value // The generated HTML
        const messages = result.messages // 转化时的一些warning信息
        console.log(messages)

        const table_data: string[][] = []

        // 使用 JSDOM 加载 HTML 内容
        const dom = new JSDOM(html)
        const document = dom.window.document

        // 获取表格中的所有 <tr> 元素
        const tableRows = document.querySelectorAll("table tr")

        // 遍历 <tr> 元素
        tableRows.forEach((row, index) => {
            const row_data: string[] = []
            // 获取当前行中的所有 <td> 元素
            const cells = row.querySelectorAll("td")

            // 遍历 <td> 元素
            cells.forEach((cell, cellIndex) => {
                row_data.push(cell.textContent ?? "")
            })
            table_data.push(row_data)
        })

        console.log("Table结果", table_data)
    })
    .catch(function (error) {
        console.error(error)
    })

代码解释 

  • mammoth 将word转化为html
  • jsdom 不在浏览器中时,用来解析html的dom结构

到此这篇关于如何使用JavaScript获取word的内容的文章就介绍到这了,更多相关JavaScript获取word内容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javascript:以前写的xmlhttp池,代码

    javascript:以前写的xmlhttp池,代码

    用javascript写的xmlhttp池代码,最下面有调用方法
    2008-05-05
  • 基于JavaScript实现网页倒计时自动跳转代码

    基于JavaScript实现网页倒计时自动跳转代码

    这篇文章主要介绍了基于JavaScript实现网页倒计时自动跳转代码 的相关资料,需要的朋友可以参考下
    2015-12-12
  • JavaScript内存机制之堆内存(Heap)与栈内存(Stack)详解

    JavaScript内存机制之堆内存(Heap)与栈内存(Stack)详解

    文章将JavaScript引擎中的内存分为栈和堆,详细描述了它们的特点、用途、管理方式和垃圾回收机制,通过代码实战演示了基本类型和引用类型的数据存储方式,并解释了闭包和内存泄漏的概念,总结了栈和堆的区别,提供了面试高频问题的回答方法,需要的朋友可以参考下
    2026-05-05
  • JS实现前端动态分页码代码实例

    JS实现前端动态分页码代码实例

    这篇文章主要介绍了JS实现前端动态分页码代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Openlayers实现根据半径绘制圆形

    Openlayers实现根据半径绘制圆形

    这篇文章主要介绍了利用Openlayers实现绘制三个圆形,绘制完成之后,三个圆心连接起来,然后标记出每两个圆心之间的距离,感兴趣的可以了解一下
    2022-08-08
  • JavaScript中浏览器多标签页通信的8种方案盘点

    JavaScript中浏览器多标签页通信的8种方案盘点

    这篇文章主要为大家详细介绍了JavaScript中浏览器多个标签页通信的8种方案与实战场景深度对比,文中的示例代码简洁易懂,有需要的可以参考下
    2025-03-03
  • JavaScript检测网络连接状态以及网络测速的具体方案

    JavaScript检测网络连接状态以及网络测速的具体方案

    在实际开发项目中,有时候需要拿到用户网络状态,然后根据用户的网络情况进行优化,但在实际开发中,我们一般会划分成断网、弱网、强网三个等级,并针对等级进行优化,那么 JavaScript 中如何检测用户网络状态呢?下面小编为大家详细说说
    2026-03-03
  • 手把手教你如何编译打包video.js

    手把手教你如何编译打包video.js

    这篇文章主要介绍了编译打包video.js的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-12-12
  • JS获取数组最大值、最小值及长度的方法

    JS获取数组最大值、最小值及长度的方法

    这篇文章主要介绍了JS获取数组最大值、最小值及长度的方法,涉及JavaScript遍历数组及length属性的相关使用技巧,非常简洁实用,需要的朋友可以参考下
    2015-11-11
  • javascript内置对象操作详解

    javascript内置对象操作详解

    这篇文章主要介绍了javascript内置对象操作详解,需要的朋友可以参考下
    2015-02-02

最新评论