Задать вопрос
Ответы пользователя по тегу Google Docs
  • Почему некоторые слова в Google Docs становятся невидимыми в браузере?

    oshliaer
    @oshliaer
    Google Products Expert
    Проблема в вашем браузере. Сросьте кеш и куки, отключите расширения.
    Ответ написан
    3 комментария
  • Как автозаполнить точками содержание в Google docs?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Для вставки содержания с точками выберите Меню - Вставка - Содержание - Формат

    Важно, Документ должен быть разбит на листы, в режиме pageless этой опции нет


    65fd645470e59450181281.png
    Ответ написан
    Комментировать
  • Как отредактировать скрипт, чтобы он подставлял данные из Таблицы в Документ?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Предлагаю использовать универсальную функцию заполнения документа

    /**
     *
     * @param {GoogleAppsScript.Document.Document} doc
     * @param {Record<string,unknown>} data
     */
    function fillDoc_(doc, data) {
      const body = doc.getBody();
    
      Object.entries(data).forEach(([key, value]) => {
        body.replaceText(`(?i){{${key}}}`, value);
      });
    
      body.replaceText(`(?i){{.*?}}`, '');
    }


    Теперь вы можете поставить в эту функцию Документ, например, вот так создается новый файл из шаблона

    const file = DriveApp.getFileById('192avJeIyh524ofvFvuQRaf9QPyqH7FKBEzwNLoHJa-g').makeCopy();
    const doc = DocumentApp.openById(file.getId());


    Важно, заменяемый текст в шаблоне должен быть обернут в {{заменяемый текст}}.


    Так же нужно создать объект данных для функции. Например, вот так

    const values = SpreadsheetApp.getActive()
      .getRange("'Заполнение Документа данными из Таблицы'!2:2")
      .getDisplayValues()[0];
    const data = {
      заголовок: 'тестовый заголовок',
      имя: values[1],
    };


    Вызов функции прост

    fillDoc_(doc, data);

    Полный пример шаблона тут https://docs.google.com/document/d/192avJeIyh524of...

    Полный пример в Таблице https://docs.google.com/spreadsheets/d/1zPuzdN7EtT...
    Ответ написан
    Комментировать
  • Как написать свой аналог DOCS в Yii2?

    oshliaer
    @oshliaer
    Google Products Expert
    Скорее всего вам нужен "rich text editor". Не забывайте в поисковике добавлять "open source". Из реально хороших, которые работают

    1. https://quilljs.com/playground/
    2. https://editorjs.io/


    На Yii2 такие вещи не делаются, но обслуживаются.
    Ответ написан
    Комментировать
  • Можно ли как-то автоматически переносить все диаграммы с google forms в google docs?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Нет. Сервис генерации статистики недоступен.

    Но такие графики легко можно написать самому в той же Таблице, потом переносить в Документ одним из общих способов.
    Ответ написан
    Комментировать
  • Apps script Как скрыть {текст} в кавычках, при условии что данные в гугл таблицы отсутствуют?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    В конце всего вместо этого

    body.replaceText("{Фамилия Имя Отчество}", "");
    body.replaceText("{Космодемьянская д. 13 кв. 29}", "");
    body.replaceText("{1111 111111}", "");
    body.replaceText("{почта}", "");
    body.replaceText("{01.01.2000}", "");
    
    body.replaceText("{Фамилия Имя Отчество}", "");
    body.replaceText("{Космодемьянская д. 13 кв. 29}", "");
    body.replaceText("{2222 333333}", "");
    body.replaceText("{мясо}", "");
    body.replaceText("{01.01.2222}", ""); 
    
    body.replaceText("{ДР33.33.3333}", "");
    body.replaceText("{сок}", "");
    body.replaceText("{хлеб}", "");
    body.replaceText("{номер телефона}", "");
    body.replaceText("{адрес}", "");
    body.replaceText("{1 телефон}", "");
    body.replaceText("{2.Фамилия Имя Отчество}", "");
    body.replaceText("{2 телефон}", "");


    Просто вызовите это

    body.replaceText('{.*?}', '');

    Это удалит все неиспользованные шаблоны.
    Ответ написан
    Комментировать
  • Как обновить размер файла Google Document?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Файлы не обновляют информацию о себе сразу. Необходимо подождать какое-то время. Плюс, картинки учитываются как-то странно. Я наблюдаю, что хранится некий кеш даже удаленных изображений.

    Еще проверьте историю версий. Можно ли оттуда что-то удалить?

    Было бы интересно посмотреть на файл в 80Мб. Там какая-то картинка, которая вам все портит, это не похоже на текст.
    Ответ написан
    Комментировать
  • Как заставить importxml подсчитать количество символов в google docs word?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    К сожалению, так не получится.

    Нужно сделать отдельный скрипт и опубликовать его как веб-приложение. Потом вызывать его в формуле

    =IMPORTDATA("https://script.google.com/macros/s/AKfycbzMBdr9yLrFPTOiRdEAr-2tHp4vkTasa6t8ME9_yxFDwCqQqg-JZEOQDHTvfrde7ahM/exec?fileId=" & C3)


    C3 - ID Документа

    63d12c19b28e8891023004.png

    Пример и ссылки на код в Таблице.

    Если вы захотите посчитать количество слов в вашем фале через мой скрипт, то ваш файл должен быть доступен для всех по ссылке как минимум на чтение.
    Ответ написан
    Комментировать
  • Как скопировать Таблицу из Google Sheets в Google Docs?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Может быть просто вставите связанные Таблицы? К сожалению, пока автоматизировать этот процесс нельзя, но сама связка работает и обновляется автоматически. Форматированеи сохраняется.

    Пример https://docs.google.com/document/d/1BNLG4f8Z_LSGch...

    Справка https://support.google.com/docs/answer/7009814?hl=...

    62d68e9a568a3296105785.png
    Ответ написан
    2 комментария
  • Как конвертировать формат изображений внутри документа Google Docs?

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

    Тут обсуждается техника работы с картинками через Apps Script https://oshliaer.github.io/qna?target=post/how-to-...
    Ответ написан
    Комментировать
  • Как добавить связку данных таблиц в Confluence с данными на других страницах?

    oshliaer
    @oshliaer
    Google Products Expert
    blabs, однозначного ответа, скорее всего нет. Я бы предположил, что документация должна идти к коду при разработке и от кода - при поддержке. Т.е. в конечном итоге сначала у вас есть ТЗ на которое ссылается Confluence (оставаясь точкой отправления), а потом у вас есть код с должным набором комментариев и документов в самой кодовой базе, на которые Confluence ссылается как на результат работы, а код ссылается на некоторые паблики (например, статьи дополнительных описаний).

    Автоматизировать в этом месте можно до потери пульса. Тут главное не стараться ради стараний. Поэтому, если бы я выбирал, то остался с Документами Гугл на уровне вводного описания и абстракции.

    Пример проблемной автоматизации. Вот эта страница https://oshliaer.github.io/qna?target=labs/apps-sc... генерируется из Документа Гугл. И все бы ничего, но только вначале это был небольшой скрипт на 5 строк в Apps Script, а теперь это приложение на Go, которое еще и контрибьютить иногда хочется. Как вообще такое получилось!? я уже сказать не могу, но то, что это были большие переоцененные надежды на Документы Гугл - факт. Т.е. вы рискуете нарваться на автоматизацию того, что вам вообще не нужно.

    Я бы Jire ничего не предпочел, но добавил бы документацию REST в OpenAPI с предложениями на изменения через git с реверс ссылками на паблик, генерируемый в Confluence. Плюс такого подхода в полнейшей и тотальной уже готовой автоматизации (подкрутить пару Docker конфигов) вплоть до тестов, проверки типов и кросс-ссылок. Обратите внимание, что ссылки должны иметь общий характер. Или же необходимо просто встроить файлы репозитория в нужный контекст статьи.

    Применимо ли это к вашим задачам миграции - это отдельный вопрос. Возможно, там какие-то невероятные многоходовки, которые просто невозможно указать в комментариях в коде OpenAPI. Тогда тут нужен более системный подход. Возможно, хранение и связывание большого количества параметров через Гугл Таблицы (используя их как первоисточник) будет как-то оправдано.
    Ответ написан
    Комментировать
  • Как получить получить текст Гугл Документа?

    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
    Ответ написан
    4 комментария
  • В чем проблема со скриптом импорта данных из гугл таблицы в гугл док?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    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>
    Ответ написан
    2 комментария