Google Spreadsheet API v4 в Java. Попытка иметь незащищенный диапазон ячеек в документе, который можно просмотреть любому, у кого есть ссылка

Поэтому я хочу иметь возможность создать лист, заполнить его некоторыми данными и создать столбец, используемый для ввода, но я хочу защитить все остальные ячейки. Я использую Java / Eclipse для запуска API.

У меня проблема, похоже, какая-то ошибка. Когда я открываю документ, он уведомляет меня, что я (владелец) - единственный, кто может редактировать диапазон, но при входе в окно в режиме инкогнито он заявляет, что "Вы и еще один пользователь можете редактировать этот лист". Любой, у кого есть ссылка, может редактировать любую ячейку в документе, несмотря на то, что в защищенных диапазонах указано "Sheet1 кроме A1:A18".

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

Порядок, в котором я иду, это: Создать файл -> Добавить данные -> Установить незащищенный диапазон -> Установить вид, доступный любому, у кого есть ссылка.

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

Если вам нужна дополнительная информация, я постараюсь ответить как можно скорее.

public Request unProtectRange(String id, GridRange range) {
    List<GridRange> grids = new ArrayList<GridRange>();
    grids.add(range);
    return new Request()
        .setAddProtectedRange(new AddProtectedRangeRequest()
            .setProtectedRange(new ProtectedRange()
                .setRequestingUserCanEdit(false)
                    .setRange(new GridRange())
                        .setUnprotectedRanges(grids)));
}

1 ответ

Здесь есть несколько вопросов. В соответствии с документами ProtectedRange...

  • requestingUserCanEdit Поле доступно только для чтения, поэтому настройки не оказали влияния.
  • editors поле не установлено, поэтому защищенный диапазон фактически не защищен. По умолчанию используются те же элементы управления доступом, что и в самой электронной таблице. Вы должны установить редакторы на допустимый объект Editors.
  • GridRange не имеет установленного листа. Это означает, что по умолчанию будет использоваться идентификатор листа 0. Возможно, вы захотите явно указать идентификатор листа.
Другие вопросы по тегам