Выделите имя текущего пользователя в Google Sheets с помощью скрипта Google Apps - PullRequest
0 голосов
/ 14 января 2019

Я работаю над таблицей с таблицей, в которой указаны имена работников и их наличие в течение всего года. Моя цель - выделить ячейку с соответствующим именем, когда конкретный человек открывает лист. Все пользователи имеют свою почту Google в схеме first_name.last_name@gmail.com.

Я уже создал некоторый код, который находит имя и выполняет смелые действия для имени активного пользователя, вы можете увидеть его ниже:

function onOpen(e) 
{
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheets = ss.getSheets();
 for(var k = 0; k<sheets.length; k++)
 {
    var data = sheets[k].getDataRange().getValues();
    var user = Session.getActiveUser().getEmail();
    var splitname =  user.split("@")[0];
    var first = splitname.split(".")[0];
    var last = splitname.split(".")[1];
    var formatted_first = first.charAt(0).toUpperCase() + first.slice(1);
    var formatted_last = last.charAt(0).toUpperCase() + last.slice(1);
    var name = formatted_first + " " + formatted_last;

    for(var i = 0; i<data.length;i++)
    {
      if(data[i][0] == name)
      { 
        var a = i+1;
      }
    }
    sheets[k].getRange(a,1).setFontWeight("bold");
  }
}

Проблема в том, что:

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

Итак, у меня вопрос: есть ли возможность сделать изменения видимыми только для пользователя, который их сделал, и как выполнять выделение только при открытом листе.

Если вам известна какая-либо функция Google, которая делает это возможным без использования макроса, это будет лучшим решением. Может быть, мое исследование не было достаточно хорошим.

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 15 января 2019

Итак, у меня вопрос: есть ли возможность сделать изменения видимыми только для пользователя, который их сделал, и как выполнять выделение только при открытом листе.

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

ПРИМЕЧАНИЕ. Представления фильтра позволяют пользователям применять настройки фильтра, видимые только для пользователя, использующего представление фильтра, но любые изменения, внесенные в отфильтрованные данные, будут доступны для просмотра другим пользователям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...