2015-04-27 4 views
0

Так что не распинает меня слишком плохо, если это глупый вопрос,Есть в любом случае, чтобы проверить таблицы Google идентификаторы

Но я вмешиваюсь в Google App Сценарии, в основном, его использования в пределах Google листов. Обычно, когда я использую openById() Если это идентификатор, который может меняться регулярно, я поставлю его в верхней части моего скрипта и добавлю примечания о том, как редактировать (для пользователя, который я передал лист, или для меня как напоминание, если я не работал над ним немного, и я забыл). Если он довольно stangnant и вряд ли изменится, я просто объявляю его как var.

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

Но даже через лист, или редактор сценариев, одну вещь добавлены или удалены в неправильном месте может привести к терзал, как пространство или/

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

Так что, я думаю, мой вопрос - это идентификатор Google Sheets, который мне кажется незнаком, длина бара, и мне было интересно, есть ли способ проверить идентификаторы с использованием регулярных выражений или что-то еще, а не проверять сервер ID-сервера. Спасибо :)

+0

Почему идентификатор файла когда-либо изменен? Я не думаю, что есть какой-либо способ проверить, является ли идентификатор файла действительным без использования кода на стороне сервера. Но вызов сервера довольно быстрый. Вы можете использовать JavaScript 'myString.trim()' для удаления пробелов с обеих сторон строки. Лист для пользовательских настроек определенно будет лучше, чем переход в редактор сценариев. Вы можете создать меню и диалоговое окно, чтобы заставить пользователей войти определенным образом. –

+0

Да. Чтобы открыть его, проверьте соединение с сервером. Он не сработает, если его плохой или скрипт не имеет разрешения. –

+0

Идентификатор файла может измениться, если новая таблица создается ежемесячно/ежеквартально. Таким образом, нет никакого способа с помощью регулярного выражения, чтобы проверить ID :( Если у меня было что-то вроде 'IF (SpreadsheetApp.openById (ID ЗДЕСЬ) = False/Null) {Browser.msgBox (« Идентификатор вашей таблицы неверен, пожалуйста, проверьте его ») ;} '(не на 100% уверен, что на верхней части моей головы будет возвращена плохая открытая команда) Это будет лучший вид проверки без регулярного выражения – Munkey

ответ

1

Вы также можете использовать openByUrl() в своих сценариях, чтобы пользователи могли просто вставить ссылку.

, но если вы должны проверить ID:

ss = SpreadsheetApp.getActiveSpreadsheet(); 

function validate(){ 
    //"sheetRef" is the name of the cell where you enter the id 
    //this function takes the string value of "sheetRef" 
    //and replaces it with the validation result. 
    var sheetRefCell = ss.getRangeByName("sheetRef"); 
    var sheetRefString = sheetRefCell.getValue(); 
    var validationResult = '{' + sheetRefString + '}'; 

    try { 
    validationResult = validationResult + 
     ' \n $ references: \n [' + 
     SpreadsheetApp.openById(sheetRefString).getName() + 
     ']'; 
    } 
    catch (e) { 
    validationResult = validationResult + 
    ' \n $ is an invalid reference: \n [' + 
     e + 
    ']'; 
    } 
    finally { 
    sheetRefCell.setValue(validationResult); 
    } 
} 

при запуске этого он заменит значение, введенное в вашем (ID) ячейки «» sheetRef с сообщением результатов проверки. Я рекомендую вам также добавить триггер, основанный на времени, чтобы постоянно обновлять ваш идентификатор.

Затем вы можете добавить еще одну ячейку в свою электронную таблицу, которая выведет проверенный идентификатор из «sheetRef». Эта ячейка должна содержать формулу:

 = IF (IFERROR(SEARCH('invalid' , sheetRef), 0) > 0, 
      "Invalid", 
      IFERROR(REGEXEXTRACT(sheetRef,"{(.*?)}"), "Undetermined") 
     ) 

Таким образом, клетка с приведенной выше формулой будет ЯВНО отображать действительное удостоверение личности или «Invalid»/«неопределенные».

+0

Спасибо за фрагмент кода. Я дам вам попробовать. Но я предполагаю, что он большой толстый нет для проверки идентификатора в любом случае. Существует не стандартное соглашение об именах, которое использует идентификатор Google, который может быть проверен на стороне клиента, с помощью регулярного выражения. – Munkey

+0

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

Смежные вопросы