我正在尝试使用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.');
}
}
答案 0 :(得分:2)
Microsoft文档与普通文本文件不同......它们是二进制文件。
因此,您必须将它们解码为纯文本,删除所有格式,删除页眉和页脚并继续。这是重要性挑战。
就像一个简单的例子,这是一段RTF文件:
{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
This is some {\b bold} text.\par
}
.DOC文件很多更复杂,但是二进制文件。 DOCX文件不同。
所以,在一个简单的答案中:不,你不能这样做。