Google Apps Scrips中是否有一种方法可以从Google文档中返回单词计数?
让我们说我正在撰写一份对字数有特定限制的报告。它非常精确,它准确地说明了1.8k - 2k字(是的,它不只是一个案例,而是很多......)
在Microsoft Office Word中,页面底部有一个方便的状态栏,可以自动更新字数,因此我尝试使用Google Apps Scrips制作一个。
编写一个从当前文档中删除整个文本的函数,然后在一分钟内反复计算几次对我来说感觉像是胡说八道。这完全没有效率,它让CPU无所事事,但我无法在Docs Reference中找到该字数的功能。
Ctr + Shift + C打开一个包含它的弹出窗口,这意味着一个返回Google文档总字数的函数肯定存在......
但我无法找到它! 叹了口气......我花了几个小时挖掘谷歌,但我根本找不到它,请帮助!
答案 0 :(得分:4)
写了一个可能有帮助的小片段。
function myFunction() {
var text = DocumentApp.getActiveDocument().getBody().getText();
var words = text.match(/\S+/g);
Logger.log(words.length);
}
答案 1 :(得分:0)
我认为这个功能可能涵盖了大多数英文字符字数统计的情况。如果我忽略了什么,请评论。
function testTheFunction(){
var myDoc = DocumentApp.openByUrl('https://docs.google.com/document/d/?????/edit');
Logger.log(countWordsInDocument(myDoc));
}
function countWordsInDocument(theDoc){
var theText = theDoc.getBody().getText();
var theRegex = new RegExp("[A-Za-z]") // or include other ranges for other languages or numbers
var wordStarted = false;
var theCount = 0;
for(var i=0;i<theText.length;i++){
var theLetter = theText.slice(i,i+1);
if(theRegex.test(theLetter)){
if(!wordStarted){
wordStarted=true;
theCount++;
}
}else if(wordStarted){
wordStarted=false;
}
}
return theCount;
}