【发布时间】:2019-10-19 22:48:28
【问题描述】:
我创建了一些简单的代码,用于从单元格 B2 中的电子表格中提取 Google Doc URL。该代码适用于某些文档,但不适用于其他文档。
程序正确地创建了文档的副本,它保留了所有格式。从那里开始,我的目标是用西班牙语替换英文文本。
我在使用 Http:// 链接时遇到了错误,有些文档完全重新格式化,有些则没有。
建议?
//This function works to create a nearly perfect copy of the document from English to Spanish. Problems with URLs and some long docs.
function spanishConverter() {
var ss = SpreadsheetApp.getActiveSpreadsheet(); //bound to Google Sheet
var listDoc = ss.getSheetByName('Doc List'); //SpreadSheet Page
var docEng = listDoc.getRange(2,2).getValue(); //Cell pulling URL from
var currentDoc = DocumentApp.openByUrl(docEng); //Opens the English version from URL on SpreadSheet
var docName = currentDoc.getName();
var docId = currentDoc.getId();
var newDoc = DriveApp.getFileById(docId).makeCopy('Spanish ' + docName).getUrl(); //Opens and makes a copy and captures URL
var newSp = DocumentApp.openByUrl(newDoc);
var body = newSp.getBody();
var paragraphs = body.getParagraphs();
//This script loops throught the paragraphs
for(var i=0; i<paragraphs.length; i++)
{
var text = paragraphs[i].getText(); //pulls text per paragraph
var transText = LanguageApp.translate(text, 'en', 'es');
Logger.log([text,transText]);
if (text !== "") //skips blanks
{
body.replaceText(text, transText);
}
}
}
【问题讨论】:
-
解决方案:清除段落文本,将段落附加“{sp}”并更新替换文本以搜索“{sp}”。它也跑得更快。 [代码]
循环内: { para.clear(); para.appendText('{sp}'); para.replaceText('{sp}', transText); }
标签: google-apps-script google-docs google-translate google-language-api