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. Возможно, вы захотите явно указать идентификатор листа.