Ответы пользователя по тегу Google Docs
  • Как получить получить текст Гугл Документа?

    oshliaer
    @oshliaer
    Google Products Expert
    Вероятно, самый простой способ получить текст Документа - это использовать Google Drive API.

    Метод
    GET https://www.googleapis.com/drive/v3/files/fileId
    возвращает список возможных экспортов

    {
      "exportLinks": {
        "application/rtf": "https://docs.google.com/feeds/download/documents/export/Export?id=ABC&exportFormat=rtf",
        "application/vnd.oasis.opendocument.text": "https://docs.google.com/feeds/download/documents/export/Export?id=ABC&exportFormat=odt",
        "text/html": "https://docs.google.com/feeds/download/documents/export/Export?id=ABC&exportFormat=html",
        "application/pdf": "https://docs.google.com/feeds/download/documents/export/Export?id=ABC&exportFormat=pdf",
        "application/epub+zip": "https://docs.google.com/feeds/download/documents/export/Export?id=ABC&exportFormat=epub",
        "application/zip": "https://docs.google.com/feeds/download/documents/export/Export?id=ABC&exportFormat=zip",
        "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "https://docs.google.com/feeds/download/documents/export/Export?id=ABC&exportFormat=docx",
        "text/plain": "https://docs.google.com/feeds/download/documents/export/Export?id=ABC&exportFormat=txt"
      }
    }


    Для своего файла с id "ABC" авторизуйтесь с правами https://www.googleapis.com/auth/drive.readonly, и вызовите

    GET https://docs.google.com/feeds/download/documents/export/Export?id=ABC&exportFormat=txt
    Ответ написан
    Комментировать
  • Есть ли горячие клавиши для действий в подсказке неправильного слова?

    oshliaer
    @oshliaer
    Google Products Expert
    Насколько я знаю, есть только проверка всего текста через [CTRL]+[ALT]+[X]. Не очень интуитивно, но по табам переходит нормально. Ignore можно сделать за 2 клика.

    Другой вариант, использовать стандартное сочетание [SHIFT]+[F10] для вызова контекстного меню [ПКМ].
    Ответ написан
    Комментировать
  • Как в гугл документе сделать защищенные абзацы/строки/диапазоны?

    oshliaer
    @oshliaer
    Google Products Expert
    К сожалению, такой возможности нет.

    Но вы можете отправить предложение по улучшению непосредственно из меню помощи приложения.

    Они точно читают.
    Ответ написан
    Комментировать
  • Экспорт данных из гугл таблицы в гугл документы. Возможно?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Слишком общий вопрос.

    Ищите примеры заполения шаблонов из Таблиц Google.

    Основная идея изложена тут. Вам достаточно передавать данные из Таблицы в функцию примера.

    Синхронизация в обратную сторону намного сложнее.
    Ответ написан
  • Как настроить автозамену кавычек " на "" ‎ в Google Docs?

    oshliaer
    @oshliaer
    Google Products Expert
    Вот набор, который я использую

    “”«»

    Работает не со всеми шрифтами.
    У автозамены есть фатальный недостаток - она требует ввода символа, отличного от цифры или буквы, например, пробел или ввод. Поэтому ввод открывающейся елочки сопряжен с раздражающей привычкой лишний раз клацать пробел.

    5dd984daf0d3b992806879.gif

    Или поставьте себе раскладку Бирмана https://ilyabirman.ru/projects/typography-layout/ под Windows.
    Ответ написан
    Комментировать
  • Как изменить отображение конца страницы в Google Docs?

    oshliaer
    @oshliaer
    Google Products Expert
    Переключитесь в режим предварительного просмотра Меню Документа - Вид - Предварительный просмотр

    5dd2b3038d359461098488.png
    Ответ написан
  • В чем проблема со скриптом импорта данных из гугл таблицы в гугл док?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    У моего линтера кукушку чуть не оторвало. Он даже подумал, что это не JS. Ваш код не валиден для интерпретатора Google Apps Script. Вот форматированный, но непроверенный код

    /* eslint-disable require-jsdoc */
    /* eslint-disable no-undef */
    
    function doAction() {
      var result = readBaseData('22-05-2019');
      // If found data for this date...
      if (result != null) {
        var doc = createNewDoc(' iskovoe ' + result[0][0]);
        fillTemplate(doc, result);
      }
    }
    // inDoc - its a empty template, inData - data for filling template
    function fillTemplate(inDoc, inData) {
      // Getting count of files in folder
      var NUM = DocsList.getFolderById(
        '1a3uCa9wRyOzio-C7FVacOykuLoxCqTs3'
      ).getFiles().length;
    
      // Replace masks (Don't work [NUM] or $NUM or something else)
      inDoc.replaceText(
        'x',
        'https://docs.google.com/spreadsheets/d//edit#gid=0...'
      );
      inDoc.replaceText(
        'x',
        'https://docs.google.com/spreadsheets/d//edit#gid=0...'
      );
      inDoc.replaceText(
        'x',
        'https://docs.google.com/spreadsheets/d//edit#gid=0...'
      );
      inDoc.replaceText(
        'x',
        'https://docs.google.com/spreadsheets/d//edit#gid=0...'
      );
    
      // get first table in document
      var table = curDoc.getTables()[0];
      for (i = 0; i < inData.length; i++) {
        var row = table.appendTableRow();
        row.appendTableCell(inData[i][1]);
        row.appendTableCell(inData[i][2]);
      }
      curDoc.saveAndClose();
    }
    function createNewDoc() {
      // Making copy of blank file
      var blankDoc = DocsList.getFileById(
        '19vYiThaKdgQ6eeiRg5nPewzP_Eab7nkLUwyt49jCC1Q'
      ).makeCopy(iskovoe);
      blankDoc.addToFolder(
        DocsList.getFolderById('1a3uCa9wRyOzio-C7FVacOykuLoxCqTs3')
      );
    
      // return working doc and table base
      return (curDoc = DocumentApp.openById(blankDoc.getId()));
    }
    // get range and sort only for day from parameter
    function readBaseData(inDate) {
      var ssDoc = SpreadsheetApp.openById(
        '1ZCNO6Iae2RwDdKAlQX6TF5mpp4xHHB4v1mXK233uJls'
      ).getActiveSheet();
    
      // get filled range
      var data = ssDoc.getDataRange().getValues();
    
      // create new array with data to inDate,
      // for start from 1 because first row is text column headers
      var filteredData = new Array([]);
      for (i = 1; i < data.length; i++) {
        data[i][0] = convertDate(data[i][0]);
        if (data[i][0] == inDate && data[i][3] == 1) {
          filteredData[i - 1] = data[i];
        }
      }
      return filteredData;
    }


    Что к чему и как - лучше описать в техническом задании и обратиться к специалисту.
    Ответ написан
    Комментировать
  • Поиск по содержанию во всех Документах Google?

    oshliaer
    @oshliaer
    Google Products Expert
    Да, вы можете использовать поиск по Диску Google с уточнением типа файла. Например, ссылка ниже ищет слово "для" во всех Документах на Диске

    https://drive.google.com/drive/search?q=type:document%20%D0%B4%D0%BB%D1%8F


    Перейти https://drive.google.com/drive/search?q=type:docum...
    Ответ написан
    Комментировать
  • Возможно ли вывести содержимое DOC файла через docs.google.com/viewer?url в iframe?

    oshliaer
    @oshliaer
    Google Products Expert
    Необходимо добавить обязательный параметр embedded=true

    <iframe src="https://docs.google.com/viewerng/viewer?url=https://cit.tsn.47edu.ru/doc/Programma_provedenia_regionalnykh_UTS_24_11_2018.docx&embedded=true">
    </iframe>


    Ну, и как альтернатива, нативный вьювер для этого формата

    <iframe src="https://view.officeapps.live.com/op/embed.aspx?src=https://cit.tsn.47edu.ru/doc/Programma_provedenia_regionalnykh_UTS_24_11_2018.docx">
    </iframe>
    Ответ написан
    Комментировать
  • Как убрать отступы в Google Docs?

    oshliaer
    @oshliaer
    Google Products Expert
    Существует минимальный зазор от верхней границы страницы до первой таблицы, который равен одному абзацу плюс два по одному расстояния между строками текста.

    Пример того, как это можно настроить https://www.facebook.com/oshliaer/videos/210600687...

    Снизу можно также удалить границу.
    Ответ написан
    Комментировать
  • Как импортировать количество лайков на ютубе?

    oshliaer
    @oshliaer
    Google Products Expert
    Вариант с гашением ошибки

    =IFERROR(IMPORTXML("https://www.youtube.com/watch?v=EJVSx6CUFFc";
                       "(//*[contains(@class,'like-button-renderer-like-button')])[1]");0)


    Вариант с обработчиком ошибки

    =IF(
      ISNA(IMPORTXML("https://www.youtube.com/watch?v=EJVSx6CUFFc";
                     "(//*[contains(@class,'like-button-renderer-like-button')])[1]"));
      0;
      IMPORTXML("https://www.youtube.com/watch?v=EJVSx6CUFFc";
                "(//*[contains(@class,'like-button-renderer-like-button')])[1]")
    )
    Ответ написан
    Комментировать
  • Как можно быстро передать владение файлами в google drive другому человеку?

    oshliaer
    @oshliaer
    Google Products Expert
    Ознакомьтесь со следующей справочной информацией.
    Как сменить владельца файла или папки
    Как освободить или увеличить хранилище Google Диска

    Из нее следует, что передать права вы сможете только на файлы поддерживаемых форматов, т.н. "файлы формата Диска Гугл".
    Самый простой способ - это поместить все файлы в одну папку, выделить их и сменить владельца, при этом в текущем выделении не должно быть файлов других форматов и фалов не принадлежащих вам.

    Другие файлы (иного формата) будут иметь один и тот же ID только на вашем Диске и нигде больше. Т.е. при передачи прав любым способом произойдет копирование/создание новых файлов с другими ID.
    В данном случае, одним из способов передачи данных является прямое копирование. Вы собираете все файлы в одну директорию, а новый будущий владелец копирует их. Способ не лишен недостатков. Например, все файлы будт иметь имена, наинающиеся со слов "Копия ".

    Очень станно слышать, что организация использовала систему общего доступа без контроля прав. Это серьезное упущение.
    Ответ написан
    Комментировать
  • Как можно с помощью google apps script найти все ссылки в google document?

    oshliaer
    @oshliaer
    Google Products Expert
    Основной принциип поиска ссылок и базовый код может быть таким
    /**
     * Get an array of all LinkUrls in the document. The function is
     * recursive, and if no element is provided, it will default to
     * the active document's Body element.
     *
     * @param {Element} element The document element to operate on. 
     * .
     * @returns {Array}         Array of objects, vis
     *                              {element,
     *                               startOffset,
     *                               endOffsetInclusive, 
     *                               url}
     */
    function getAllLinks(element) {
      var links = [];
      element = element || DocumentApp.getActiveDocument().getBody();
    
      if (element.getType() === DocumentApp.ElementType.TEXT) {
        var textObj = element.editAsText();
        var text = element.getText();
        var inUrl = false;
        for (var ch=0; ch < text.length; ch++) {
          var url = textObj.getLinkUrl(ch);
          if (url != null) {
            if (!inUrl) {
              // We are now!
              inUrl = true;
              var curUrl = {};
              curUrl.element = element;
              curUrl.url = String( url ); // grab a copy
              curUrl.startOffset = ch;
            }
            else {
              curUrl.endOffsetInclusive = ch;
            }          
          }
          else {
            if (inUrl) {
              // Not any more, we're not.
              inUrl = false;
              links.push(curUrl);  // add to links
              curUrl = {};
            }
          }
        }
      }
      else {
        var numChildren = element.getNumChildren();
        for (var i=0; i<numChildren; i++) {
          links = links.concat(getAllLinks(element.getChild(i)));
        }
      }
    
      return links;
    }


    Источник Get All Links in a Document
    Ответ написан
    Комментировать
  • Googlee docs - как можно добавить свою кнопку для обертки определенного текста HTML тегами?

    oshliaer
    @oshliaer
    Google Products Expert
    Идея неплохая, но пока невыполнимая. Максимум, что вы можете сделать, это добавлять комментарии, но поиск по ним происходит невсегда, если вообще происходит.
    По большому счету, вы ожидаете некоторый слой метеданных над тектом Документов Гугл. Таких возможностей пока нет.

    Попробуйте отправить передложение по улучшению продкута https://gdriveru.blogspot.se/2017/04/reportproblen...
    Ответ написан
    Комментировать