使用JavaScript - 如何计算Microsoft Word文档中的单词?

时间:2016-06-03 19:51:09

标签: javascript ms-word

我正在尝试使用JavaScript计算Microsoft Word文档中的单词 我设法在普通文本文件中计算单词。有没有办法为Microsoft Word文件使用例如" JavaScript API for Office"或任何其他方法。

检查这个插件 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.');
    }
}

1 个答案:

答案 0 :(得分:2)

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

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

就像一个简单的例子,这是一段RTF文件:

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

.DOC文件很多更复杂,但是二进制文件。 DOCX文件不同。

所以,在一个简单的答案中:不,你不能这样做。