javascript - 使用 JavaScript - 如何计算 Microsoft Word 文档中的字数?

标签 javascript ms-word

我正在尝试使用 JavaScript 计算 Microsoft Word 文档中的字数 我设法计算普通文本文件中的单词数。有没有办法使用“JavaScript API for Office”或任何其他方法对 Microsoft Word 文件执行此操作。

检查这个小东西 https://plnkr.co/edit/5TJfNiPxv275GuimdIlj?p=preview

<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>

  <body>
    <h2>Microsoft Word Document Count Words! Using JavaScript?</h2>
    <input type="file" accept=".doc,.txt,.docx" onchange="calculateWords()" id="textDoc"/>
    <div>
      <h1 id="fileInformation">File word Count after choose</h1>
    </div>
  </body>

</html>

JavaScript 代码

function calculateWords() {
    if (window.File && window.FileReader && window.FileList && window.Blob) {
        console.log("words");
        var doc = document.getElementById("textDoc");
        var f = doc.files[0];
        if (!f) {
            alert("Failed to load file");
            //validate file types yet to come
        } else if (false) {
            alert(f.type + " is not a valid text file.");
        } else {
            var r = new FileReader();//create file reader object
            r.readAsText(f);//read file as text

            //attach function to execute when loading file finishes. 
            r.onload = function (e) {
                var contents = e.target.result;
                var res = contents.split(" ");
                console.log(res.length);
                var fileInformation = "word Count = "+res.length;
            var info = document.getElementById("fileInformation");
            info.innerHTML = fileInformation;

            }
        }
    } else {
        alert('The File APIs are not fully supported by your browser.');
    }
}

最佳答案

Microsoft 文档与普通文本文件不同..它们是二进制文件。

因此,您必须将它们解码为纯文本,删除所有格式,删除页眉和页脚并继续。这是一个意义重大的挑战。

作为一个简单的例子,这是 RTF 文件的一部分:

{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
This is some {\b bold} text.\par
}

.DOC 文件要复杂得多,但是是二进制文件。 DOCX 文件有所不同。

所以,简单来说:不,你不能这样做。

关于javascript - 使用 JavaScript - 如何计算 Microsoft Word 文档中的字数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37622351/

相关文章:

javascript - 如何使用 Javascript 将文本添加到单选按钮?

javascript - prototypeJS DOM 与 AJAX 交互

php - 如何设置从网站到 Twitter 的推文状态时间表?

javascript - process.on ('uncaughtException' ) 在 ES6 模块中处理

c# - 在 OpenXML 中处理 Word 文档时从 OpenXmlElement 获取 DocumentPart

php - 使用 PHP 移除 MS Word "HTML"

javascript - 如何在 javascript 中做 LINQ SelectMany() 的等价物

vba - 如何查找项目符号列表并设置项目符号格式(VBA _ Word 文档)

c# - 对通过 OpenXML 与 Microsoft Word 通信的应用程序进行单元测试

vba - 使用 VBA 获取 word 中的所有交叉引用