Выделите слова в документе в Google Drive
У меня проблема со скриптом приложения Google. Я загружал свои файлы на диск с помощью php. Файл вставляется на диск успешно. Но когда я хочу отредактировать документ, чтобы выделить слова с помощью скрипта приложения Google, я получаю сообщение об ошибке, Идентификатор файла на диске Google и документы Google отличаются, поэтому я не могу отредактировать файл в документах Google с помощью скрипта приложения. Пожалуйста, посмотрите на мой код и предложите мне
Я использую ссылку Google Docs для редактирования, но идентификатор файла, который у меня есть, - это идентификатор диска, поэтому предложите мне, как я могу получить это
function doGet(param){
var files = DriveApp.getFilesByName('11008.doc');
while (files.hasNext()) {
var file = files.next();
var url = file.getUrl();
url = url.replace("?usp=drivesdk","");
Logger.log(url);
var doc = DocumentApp.openByUrl('https://docs.google.com/document/d/18CEwLeTLwsQ_xR2BLWqs5E1lQrd9SsNuUwlnBpWLQro/edit');
var textToHighlight = 'MA';
var highlightStyle = {};
highlightStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = '#FF0000';
var paras = doc.getParagraphs();
var textLocation = {};
var i;
for (i=0; i<paras.length; ++i) {
textLocation = paras[i].findText(textToHighlight);
if (textLocation != null && textLocation.getStartOffset() != -1) {
textLocation.getElement().setAttributes(textLocation.getStartOffset(),textLocation.getEndOffsetInclusive(), highlightStyle);
}
}
return doc;
}
}
0 ответов
Возможно, это поможет:
function highLightText(txt,from) {
var highlight={};
highlight[DocumentApp.Attribute.BACKGROUND_COLOR]='#ff0000';
var from=from || '';
var txt=txt || '';
var doc=DocumentApp.getActiveDocument();
var body=doc.getBody();
if(from){
var rgel=body.findText(txt, from);
}else{
var rgel=body.findText(txt);
}
if(rgel){
var el=rgel.getElement();
var start=rgel.getStartOffset();
var end=rgel.getEndOffsetInclusive();
if(rgel.isPartial()){
el.asText().setAttributes(start, end, highlight)
}else{
el.asText().setAttributes(highlight);
}
highLightText(txt,rgel);
}
}