Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы документов
Редакторы документов
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
ВКС и мессенджер
ВКС и мессенджер
Мобильные редакторы
Мобильные редакторы
Почтовый сервер
Почтовый сервер
Органайзер
Органайзер
Сервер лицензирования
Сервер лицензирования
Файл-Экспресс
Файл-Экспресс
Аналитика
Аналитика
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Вставка внешних данных

Обновлено: 05.08.26

Следующие шаги объясняют процесс вставки данных в электронную таблицу по внешней ссылке в Сервере документов.

Уточнение

Ознакомьтесь с функционалом более подробнее в блоке часто задаваемых вопросов:
Создание ссылки на ячейку из другой таблицы для сервера документов 7.4 и выше ↗

  1. Пользователь копирует значение ячейки в буфер обмена из редактора документов исходной таблицы. В то же время копируются также и специальные данные;
  2. Пользователь вставляет скопированные данные в редактор документов целевой таблицы;
  3. Редактор документов запрашивает ссылку на исходный файл, отправляя данные менеджеру документов;
  4. Менеджер документов отправляет ссылку на исходную таблицу редактору документов;
  5. Редактор документов отправляет запрос в службу редактирования документов на загрузку электронной таблицы;
  6. Служба редактирования документов загружает исходную таблицу из службы хранения документов;
  7. Служба редактирования документов отправляет все необходимые данные для отображения в редакторе документов целевой таблицы.

Как это реализовать на практике

  • Создайте исходную таблицу, из которой будут скопированы данные;
  • Укажите параметр document.referenceData ↗ в конфигурации инициализации исходной таблицы:
    var docEditor = new DocsAPI.DocEditor("placeholder", {
        "document": {
            "referenceData": {
                "fileKey": "BCFA2CED",
                "instanceId": "https://example.com"
            },
            ...
        },
        ...
    });
  • Когда пользователь копирует данные из исходной таблицы, в буфер обмена попадает список следующих значений:
    a. Имя листа и диапазон, из которого были скопированы данные, которые будут использоваться позже для обновления скопированных данных;
    b. Объект document.referenceData ↗, который будет использоваться для проверки возможности вставки данных в целевую таблицу по внешней ссылке;
    c. Имя файла, которое будет использоваться для отображения формулы в редакторе.
  • Создайте целевую таблицу, куда будут вставлены внешние данные.
  • Укажите обработчик событий onRequestReferenceData ↗ в конфигурации инициализации целевой электронной таблицы, чтобы отображались кнопки «Вставить ссылку» и «Обновить значения»:
    var docEditor = new DocsAPI.DocEditor("placeholder", {
        "events": {
            "onRequestReferenceData": onRequestReferenceData,
            ...
        },
        ...
    });
  • Если в буфере обмена имеются данные исходной электронной таблицы, указанные на шаге 3, а в целевой электронной таблице есть обработчик событий onRequestReferenceData в конфигурации инициализации, то в диалоговом окне отображается кнопка Вставить связь:
  • Когда пользователь нажимает кнопку «Вставить связь», формула вставляется в текущую ячейку, а объект referenceData сохраняется в файл назначения. Вставленная формула отображается следующим образом:
    ='[fileName]sheetName'!cell
    ПараметрОписаниеТипПример
    cellЯчейка, из которой были скопированы данные.stringE5
    fileNameИмя файла, из которого были скопированы данные.stringnew.xlsx
    sheetNameИмя листа, из которого были скопированы данные.stringSheet1

    Запрос на обновление данных в файле будет отправлен на URL-адрес файла.

    Обратите внимание, что в ячейку можно ввести формулу заданного формата, при этом будут вставлены данные из внешнего файла. Но в этом случае событие onRequestReferenceData будет выполнено только с параметром пути.

  • Когда пользователь пытается обновить данные из исходного файла, нажав кнопку «Обновить значения» в диалоговом окне «Внешние ссылки» на вкладке «Данные», вызывается событие onRequestReferenceData ↗. В параметре данных передается объект с уникальными данными файла, полученными из исходного файла, а также путь или имя файла. Чтобы отправить данные в метод setReferenceData, рекомендуется сначала выполнить поиск файла по параметру referenceData. Если такого поля нет или файл не найден, то используется параметр пути:
    var onRequestReferenceData = function (event) {
        var referenceData = event.data.referenceData;
        var path = event.data.path;
        ...
    };
  • Чтобы обновить данные из исходного файла, необходимо вызвать метод setReferenceData ↗. При вызове этого метода необходимо добавить токен для проверки параметров. Обратите внимание, что этот метод выполняется только в том случае, если у пользователя есть разрешения на исходный файл:
    docEditor.setReferenceData({
        "fileType": "xlsx",
        "path": "sample.xlsx",
        "referenceData": {
            "fileKey": "BCFA2CED",
            "instanceId": "https://example.com"
        },
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmaWxlVHlwZSI6Inhsc3giLCJwYXRoIjoic2FtcGxlLnhsc3giLCJyZWZlcmVuY2VEYXRhIjp7ImZpbGVLZXkiOiJCQ0ZBMkNFRCIsImluc3RhbmNlSWQiOiJodHRwczovL2V4YW1wbGUuY29tIn0sInVybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vdXJsLXRvLWV4YW1wbGUtZG9jdW1lbnQueGxzeCJ9.UXosmM-E_Cu9j9QGSlcj9FEoSu5m-zCS4b6FxO_2k7w",
        "url": "https://example.com/url-to-example-document.xlsx"
    });

Где:

  • example.com — это имя сервера, на котором установлен менеджер документов и служба хранения документов.

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое