使用 sheet 和应用程序脚本在 google 文档中批量查找和替换
bulk find and replace in google docs using sheet and app script
提前致谢。
我正在尝试多次查找并用参考文献替换 google 文档 google sheet
Find | Replace
----------------------------
bill number one | Bill No. 1
Bill number one | Bill No. 1
Bill number 1 | Bill No. 1
Bill Number One | Bill No. 1
Bill Number 1 | Bill No. 1
function replMyText(){
var ss=SpreadsheetApp.openById('1-WblrS95VqsM5eRFkWGIHrOm_wGIPL3QnPyxN_j5cOo');
var sh=ss.getSheetByName('find and replace');
var doc=DocumentApp.getActiveDocument();
var docrange=doc.getBody()
var rgtxt=doc.getBody();//text to replace
var rgrep=sh.getRange('A2:B103');//replacement table
var txtA=rgtxt.getText();
var repA=rgrep.getValues();
for(var i=0;i<txtA.length;i++){
for(var j=0;j<repA.length;j++){
if(txtA[i][0]==repA[j][0]){
txtA[i][0]=repA[j][1];
}
}
}
rgtxt.setText(txtA);
}
我没有得到输出。
我相信你的目标如下。
- 您想使用从 Google 电子表格中检索到的值替换 Google 文档中的文本。
- Google 电子表格中的“A”列和“B”列分别是搜索文本和替换文本。
在这种情况下,我认为replaceText()
可能可以使用。当你的脚本修改后,变成如下。
修改后的脚本:
function replMyText() {
var ss = SpreadsheetApp.openById('1-WblrS95VqsM5eRFkWGIHrOm_wGIPL3QnPyxN_j5cOo');
var sh = ss.getSheetByName('find and replace');
var doc = DocumentApp.getActiveDocument();
var rgtxt = doc.getBody();
var rgrep = sh.getRange('A2:B103');
var repA = rgrep.getValues().filter(r => r.every(c => c.toString()));
repA.forEach(e => rgtxt.replaceText(...e));
}
参考:
提前致谢。
我正在尝试多次查找并用参考文献替换 google 文档 google sheet
Find | Replace
----------------------------
bill number one | Bill No. 1
Bill number one | Bill No. 1
Bill number 1 | Bill No. 1
Bill Number One | Bill No. 1
Bill Number 1 | Bill No. 1
function replMyText(){
var ss=SpreadsheetApp.openById('1-WblrS95VqsM5eRFkWGIHrOm_wGIPL3QnPyxN_j5cOo');
var sh=ss.getSheetByName('find and replace');
var doc=DocumentApp.getActiveDocument();
var docrange=doc.getBody()
var rgtxt=doc.getBody();//text to replace
var rgrep=sh.getRange('A2:B103');//replacement table
var txtA=rgtxt.getText();
var repA=rgrep.getValues();
for(var i=0;i<txtA.length;i++){
for(var j=0;j<repA.length;j++){
if(txtA[i][0]==repA[j][0]){
txtA[i][0]=repA[j][1];
}
}
}
rgtxt.setText(txtA);
}
我没有得到输出。
我相信你的目标如下。
- 您想使用从 Google 电子表格中检索到的值替换 Google 文档中的文本。
- Google 电子表格中的“A”列和“B”列分别是搜索文本和替换文本。
在这种情况下,我认为replaceText()
可能可以使用。当你的脚本修改后,变成如下。
修改后的脚本:
function replMyText() {
var ss = SpreadsheetApp.openById('1-WblrS95VqsM5eRFkWGIHrOm_wGIPL3QnPyxN_j5cOo');
var sh = ss.getSheetByName('find and replace');
var doc = DocumentApp.getActiveDocument();
var rgtxt = doc.getBody();
var rgrep = sh.getRange('A2:B103');
var repA = rgrep.getValues().filter(r => r.every(c => c.toString()));
repA.forEach(e => rgtxt.replaceText(...e));
}